在 C++ 中,我想创建一个std::set<int>
超级列表,在每个“盒子”中存储一个std::set<int>
列表,我猜超级列表必须是指向每个列表的第一个 int 的指针列表。就像是:
superlist.insert(*list);
在知道必须设置列表类型的情况下,如何将列表插入超级列表?
我对指针真的很糟糕,还无法解决它。非常感谢。
在 C++ 中,我想创建一个std::set<int>
超级列表,在每个“盒子”中存储一个std::set<int>
列表,我猜超级列表必须是指向每个列表的第一个 int 的指针列表。就像是:
superlist.insert(*list);
在知道必须设置列表类型的情况下,如何将列表插入超级列表?
我对指针真的很糟糕,还无法解决它。非常感谢。
您不需要为此提供指针。只需使用一个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());