c++所属条件

C++ Belong Condition

本文关键字:条件 c++      更新时间:2023-10-16

我需要对∈(不属于)做一个if条件

条件:

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

的例子:

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

所以若t3∈A(f1)做某事

我的问题是我不知道怎么用c++做集合集

编辑:

谢谢你的回答。

我还有一个问题,但我不知道这是否真的可能,还是我梦想太多了。我需要多次运行我的程序,但每次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…?

我发现另一个问题是,我可能要创建更多的集合有超过2个或A(fi),数量没有提前。我不知道如何在不同的时间创建不同数量的集合。这可能吗?

你可以使用std::设置为这样,下面是一个例子:

#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;
}

使用Set容器存放一组元素。然后使用方法count并检查其返回值是否为零。

假设A是一个返回std::set(或对std::set的引用)的函数:

auto& s = A(f1);
if(s.find(t3) == s.end())
  std::cout << "Not in setn";