gpt4 book ai didi

c++ - 如何将迭代器获取到 vector 的特定位置

转载 作者:IT老高 更新时间:2023-10-28 12:38:06 28 4
gpt4 key购买 nike

假设我有一个

std::vector<int> v
//and ...
for(int i =0;i<100;++i)
v.push_back(i);

现在我想要一个迭代器,比如说 vector 的第 10 个元素。

不做下面的做法

std::vector<int>::iterator vi;
vi = v.begin();
for(int i = 0;i<10;i++)
++vi;

因为这会破坏为 vector 提供随机访问迭代器的优势。

最佳答案

这将适用于任何随机访问迭代器,例如来自 vectordeque 的迭代器:

std::vector<int>::iterator iter = v.begin() + 10;

如果您想要一个适用于任何类型迭代器的解决方案,请使用 next:

std::vector<int>::iterator iter = std::next(v.begin(), 10);

或者,如果您不是 C++11 实现,advance:

std::vector<int>::iterator iter = v.begin();
std::advance(iter, 10);

关于c++ - 如何将迭代器获取到 vector 的特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935389/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com