访问set的第n个元素

ДМИ*_*КОВ 5 c++ stl set

有一套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)