5

可能重复:
如何在 C++ 中做集合向量?

我想为我的代码中的不同级别设置一组。每个级别的集合将保存整数值。这些集合的数量应该是动态的,具体取决于所需的级别数(作为输入给出)。

为此,我想要一个动态的集合结构。我怎样才能做到这一点?我可以根据需要使用指向集合的指针数量吗?我如何实现这一目标?有没有其他方法。

有人可以给我一个片段吗?

4

2 回答 2

9
vector<set<int> > my_sets;

将元素添加到第 i 个集合:

int number;
//...
my_sets[i].insert(number);

搜索第 i 个集合中的元素:

if(my_sets[i].find(number) != my_sets[i].end())
{
      // Number found
}

迭代第 i 个集合:

for(set<int> :: iterator it = my_sets[i].begin(); it != my_sets[i].end();++it)
{
   // do something with integer value *it
}

添加一个新集合:

set<int> temp;
temp.insert(a);temp.insert(b);//...
my_sets.push_back(temp);

擦除第 i 组:

my_sets.erase(my_sets.begin() + i );
于 2012-07-05T07:26:50.067 回答
2

集合的向量很简单std::vector<std::set<type>>。你在寻找别的东西吗?

于 2012-07-05T07:07:22.567 回答