c++ - 访问集合的第 n 个元素

标签 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++
)

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/

相关文章:

c++ - 如何使用 libqrencode 编译项目?

c++ - 指针错误 - "using uninitialized value"即使我认为它已初始化?

c# - 一个 C# 集合,其行为类似于 C++ set 或 priority_queue?

c++ - std::bitset - 如何迭代 "set"(或 "not set")位?

python - 获取集合中不包括某些元素的元素

c++ - 我们在 vector 中没有的多集中有什么更好的特征?

c++ - #include <deque> 在 Xcode4 上

c++ - 使用 map 计算词频

c++ - 如何获得 std::regex 的所有可能匹配项

c++ - 以交替模式合并两个 STL vector