在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
没有提供这样的运算符,您必须自己编写一个。
有效地做到这一点可能是一个挑战。
我正在尝试定义一个集合,其中的元素是另一个集合的迭代器。详细来说,我定义了下面的集合,但是当我想向集合中插入一个元素时,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
没有提供这样的运算符,您必须自己编写一个。
有效地做到这一点可能是一个挑战。