-4

在 C++ 中,我想创建一个std::set<int>超级列表,在每个“盒子”中存储一个std::set<int>列表,我猜超级列表必须是指向每个列表的第一个 int 的指针列表。就像是:

superlist.insert(*list);

在知道必须设置列表类型的情况下,如何将列表插入超级列表?

我对指针真的很糟糕,还无法解决它。非常感谢。

4

1 回答 1

0

您不需要为此提供指针。只需使用一个std::vector

std::set<int> my_set;
... insert things in the set ...
std::vector<std::set<int> > list_of_sets;
list_of_sets.push_back(my_set);

这将导致集合被复制,但除非您有数十亿个整数,或者这已被执行数百万次,否则这并不重要。

或者,您可以将集合插入到向量中,然后直接使用向量中的该元素进行插入,在这种情况下,您不会产生复制成本。但我不确定你的其余代码是如何布局的。

也许您想要的是Superset。在这种情况下,您应该这样做:

std::set<int> superset;

for each smaller set:
superset.insert(each_set.begin(), each_set.end());
于 2013-05-23T12:08:19.753 回答