我在c ++中遇到了set :: iterators的一些问题。我有一组二维点,我需要迭代并逐三比较这些点。
我的想法是使用三个循环逐个递增迭代器。但是当我尝试时,c ++给了我一个错误:
for (set<pair<double, double> >::iterator i = S.begin(); i != S.end(); i++){
for (set<pair<double, double> >::iterator j = i+1; j != S.end(); j++){
...
}
}
编辑:错误是“错误:'i + 1'中'运算符+'不匹配”
答案 0 :(得分:3)
std :: set有一个双向迭代器。它没有迭代器+整数这样的操作。所以改用
for (set<pair<double, double> >::iterator j = std::next( i ); j != S.end(); j++){