设置循环-获取下一个元素迭代器

时间:2018-10-31 15:07:46

标签: c++ iterator set next

如果我在一个集合上循环,并且想要获得当前元素迭代器和下一个元素迭代器,那么如何在不使用 next()的情况下做到这一点?

for(auto it = setOfObjects().begin(); it != setOfObjects().end(); ){
            auto current = *it;
            auto next = // ?

}

2 个答案:

答案 0 :(得分:0)

我认为您只需在代码中添加另一个迭代器prev,其逻辑将是:

set<int> setOfObjects;
for(auto it = setOfObjects.begin(), previt = it++ ; it != setOfObjects.end(); ++it, ++previt){
  auto prev = *previt;  //which is current
  auto current = *it;   //and this was next
}

答案 1 :(得分:-1)

可以按照与指针算术相同的方式检查迭代器,如下所示

auto next = *(it + 1);

请注意,这将需要处理以下情况:当前是最后一个元素,这样就不会越过迭代器