有一组visited
。我想检查它从第 4 到最后的所有元素。
我正在尝试做类似的事情
int visited_pointer = 4;
for ( set<int>::iterator i_visited=visited.begin()+visited_pointer
; i_visited!=visited.end()
; i_visited++
)
operator+
出错。
我怎样才能以正确的方式做到这一点?
最佳答案
operator+
的用法仅为随机访问迭代器提供。 set
迭代器是双向迭代器。
但函数 std::advance
可用于将任何迭代器移动一定数量的位置:
#include <iterator>
//...
set<int>::iterator i_visited = visited.begin();
for ( std::advance(i_visited, visited_pointer)
; i_visited!=visited.end()
; ++i_visited
)
关于c++ - 访问集合的第 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848041/