【发布时间】:2020-10-22 00:31:31
【问题描述】:
我正在尝试对集合使用嵌套迭代器,如下所示,但给出了错误:
错误:“operator+”不匹配(操作数类型为“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;
}
}
}
【问题讨论】:
-
该代码本身不应导致该错误。但我假设缺少部分?例如,
s是什么?如果auto iti = 0是代码,auto itj = iti+1应该不会造成任何问题(iti和itj推导为int)。 -
您的代码说
iti是一个整数,但消息说它是一个迭代器。你确定你发布了你正在编译的代码吗? -
什么是
st、s和t?你这里好像没有用test,为什么要声明呢? -
之前的代码是一个更大问题的一部分。为了更好地理解,我重新格式化了代码。我希望你们现在明白了吗? @MikaelH
-
之前的代码是一个更大问题的一部分。为了更好地理解,我重新格式化了代码。我希望你们现在明白了吗? @molbdnilo