在c++中定义一组set的迭代器

Define a set of iterators of set in c++

我正在尝试定义一个集合,其中的元素是另一个集合的迭代器。详细来说,我定义了下面的集合,但是当我想向集合中插入一个元素时,c++ 不允许。我如何构造一组迭代器?

set<set<set<int>>::iterator> s;
set<set<int>> s1;
set<int> s2;
s2.insert(2);
s1.insert(s2);
s.insert(s1.begin());

将某物放入集合有什么要求?

您需要它可以(广泛地)复制,并且您需要一个强加严格弱排序的比较函数。 (默认值为 <)。由于 set::iterator 没有提供这样的运算符,您必须自己编写一个。

有效地做到这一点可能是一个挑战。