如何解决访问集合的第n个元素
| 有一个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
迭代器是双向迭代器。
但是函数“ 5”可用于将任何迭代器移动一定数量的位置:
#include <iterator>
//...
set<int>::iterator i_visited = visited.begin();
for ( std::advance(i_visited,visited_pointer)
; i_visited!=visited.end()
; ++i_visited
)
,集合不支持随机访问迭代器(即那些支持向迭代器添加值的迭代器),因此实现此目的的唯一方法是迭代第一个(可能意味着)四个成员,直到获得所需的成员为止。在我看来,set并不是您要尝试执行的操作的正确容器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。