1

∉(所属していない)でif条件を実行する必要があります

条件:

if tj ∉ A(fi) where A(fi) contains some elements

例:

A(f1)= t1, t2 A(f2)= t1, t3

t3 ∉ A(f1) の場合、何かを行います。

私の問題は、C ++で∉を実行する方法がわからないことです

編集:

回答ありがとうございます。

もう 1 つ質問がありますが、それが本当に可能なのか、それとも夢見すぎなのかわかりません。プログラムを何度も実行する必要がありますが、そのたびに A(fi) 内の要素が変更されます。

0 と 1 でランダムに実行できることはわかっています。したがって、t1 を配置する代わりに 0 または 1 に置き換えることを考えていましたが、順序の書き方がわかりません。

A(f1) ={1, 0,1,0} と A(f2)={0,1,1,0} があるように、t1 は A(f1) に表示され、t2 は A(f2) に表示され、t3 A(f1) や A(f2) などに現れます。

set 関数については、次のように記述します。

「セットは、特定の順序に従って一意の要素を格納するコンテナーです。」そのため、注文に名前を付けることができる場合があります

だから私の質問は、それが可能だと思いますか、どうすればt1、t2、t3をリンクできますか...?

もう 1 つの問題は、2 つまたは A(fi) を超えるセットを作成する可能性があることです。数は事前ではありません。異なる時間に異なる数のセットを作成する方法がわかりませんでした。出来ますか?

4

3 に答える 3

3

これにstd::setを使用できます。以下に例を示します。

#include <iostream>
#include <set>
#include <string>

int main ()
{
  std::set<std::string> myset;

  myset.insert( "t1") ;
  myset.insert( "t2") ;

  if( myset.count( "t2") != 0 )
  {
     std::cout << "Set contains t2" << std::endl; 
  }

  if( myset.count( "t3") != 0 )
  {
     std::cout << "Set contains t3" << std::endl; 
  }

  return 0;
}

std::includesを使用した例:

#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
#include <vector>

int main ()
{
  std::vector<std::string> v1 {"t1", "t2", "t3", "t4" };
  std::vector<std::string> v2 {"t2", "t4"};
  std::vector<std::string> v3 {"t3"};  

  std::cout << "v1 contains the follows elments of v2:" << std::endl ;
  for (auto i : v2){
     std::cout << i << ' ';
     std::cout << ": " << std::includes(v1.begin(), v1.end(), v2.begin(), v2.end()) << std::endl ;
  }

  std::cout << "v1 contains the follows elments of v3:" << std::endl ;
  for (auto i : v3){
     std::cout << i << ' ';
     std::cout << ": " << std::includes(v1.begin(), v1.end(), v2.begin(), v2.end()) << std::endl ;
  }

  return 0;
}
于 2013-03-10T03:44:09.250 に答える
0

Setコンテナーを使用して、一連の要素を格納します。次に、メソッドを使用して、countその戻り値がゼロであることを確認します。

于 2013-03-10T03:43:06.347 に答える
0

それが a (または a への参照)Aを返す関数であると仮定します。std::setstd::set

auto& s = A(f1);
if(s.find(t3) == s.end())
  std::cout << "Not in set\n";
于 2013-03-10T03:43:23.043 に答える