C++集合的嵌套迭代器
C++ Nested Iterators for Sets
我正在尝试对集合使用嵌套迭代器,如下所示,但给出了一个错误:
错误:与"运算符+"不匹配(操作数类型为"std::_Rb_tree_const_iterator"和"int"( for(auto itj = iti+1; itj != st.end((; itj++({
int alternate(string s) {
set<char> st;
for(char x : s){
st.insert(x);
}
for(auto iti = st.begin(); iti != st.end(); iti++){
//string t = "";
for(auto itj = iti+1; itj != st.end(); itj++){
cout<<*iti<<" "<<*itj<<endl;
}
}
}
std::set
的迭代器不满足命名的要求LegacyRandomAccessIterator
。它只满足LegacyBidirectionalIterator
.
因此iti + 1
不是有效的表达式,迭代器没有匹配的运算符+。
要解决您的问题,您可以使用std::next
。
for (auto iti = st.begin(); iti != st.end(); ++iti){
for (auto itj = std::next(iti); itj != st.end(); ++itj){
cout << *iti << " " << *itj << endl;
}
}
这是一个演示。
相关文章:
- C++集合的嵌套迭代器
- 无法获得等效的 std::less 来用于嵌套迭代器
- 嵌套循环和重复迭代器
- C++嵌套的迭代器类(在链表类中)Insert_After函数
- 如何通过迭代器访问向量中的嵌套对?
- C++同一地图上的嵌套迭代器?
- 设计具有两个指向嵌套对象的指针的迭代器
- 使用迭代器将值插入嵌套地图
- 如何推断嵌套最多的迭代器类型
- C /STL公共迭代器,用于深嵌套的私人数据
- C nlohmann如何迭代 /查找嵌套对象
- 嵌套映射迭代器
- C++迭代器:抽象类的迭代器可以作为嵌套类实现吗
- C++使用boost-fusion-adapt_struct迭代到嵌套结构字段中
- 嵌套迭代器访问
- 如何压平嵌套容器的迭代器
- 嵌套迭代器类不命名类型
- 使用具有嵌套向量的迭代器的意外行为
- 使用迭代器C++的嵌套循环
- c++:创建迭代器嵌套类的实例