提问人:fva 提问时间:12/15/2019 最后编辑:fva 更新时间:12/15/2019 访问量:272
在 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());
答:
0赞
Marshall Clow
12/15/2019
#1
将某样东西放入套装中有什么要求?
你需要它是可复制的(广义的),并且你需要一个施加严格弱排序的比较函数。(默认值为 )。由于没有提供这样的运算符,因此您必须自己编写一个运算符。<
set::iterator
有效地做到这一点可能是一个挑战。
评论
0赞
fva
12/15/2019
你对定义比较函数有什么想法吗?每个迭代器都指向一个集合,也许最好定义集合的比较函数。
0赞
Marshall Clow
12/18/2019
先于一个迭代器排序另一个迭代器意味着什么?这是需要回答的问题。[注意:不一定只有一个唯一的答案]
评论
set
s.insert(s1.begin())
std::set<Type>
std::less<Type>
operator <