有一套visited
.我想检查从第4到最后的所有元素.我正在尝试做那样的事情
int visited_pointer = 4;
for ( set<int>::iterator i_visited=visited.begin()+visited_pointer
; i_visited!=visited.end()
; i_visited++
)
Run Code Online (Sandbox Code Playgroud)
和错误operator+
.
我怎么能以正确的方式做到这一点?
asc*_*ler 12
该用法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
)
Run Code Online (Sandbox Code Playgroud)