获取c++中不同列表的超级列表

Get a superlist of different lists in C++

本文关键字:列表 c++ 获取      更新时间:2023-10-16

在c++中,我想创建一个std::set<int>超列表,在每个"框"中存储一个std::set<int>列表,我猜超列表必须是指向每个列表的第一个int的指针列表。比如:

superlist.insert(*list);

在知道list类型必须设置的情况下,如何将list插入到superlist中?

我对指针很不好,还不能解决它。非常感谢。

您不需要指针。请使用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);

这将导致集合被复制,但除非你有数十亿个整数,或者这个操作被做了数百万次,否则它不会有太大影响。

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

也许你想要的是一个超集。在这种情况下,你应该这样做:

std::set<int> superset;
for each smaller set:
superset.insert(each_set.begin(), each_set.end());