等同迭代器

时间:2014-01-29 20:40:33

标签: c++ iterator set

我在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'中'运算符+'不匹配”

1 个答案:

答案 0 :(得分:3)

std :: set有一个双向迭代器。它没有迭代器+整数这样的操作。所以改用

for (set<pair<double, double> >::iterator j = std::next( i ); j != S.end(); j++){