[英]Assign vector address to iterator
我希望向量迭代器指向一个向量元素。 我有
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1,2,3,4,5};
std::vector<int>::iterator it;
// want "it" to point to the "3" element, so something like
// it = &prices[2];
// it = &prices.at(2);
}
但这些尝试都不起作用。 我想我需要一些返回迭代器的向量函数,而不是地址(?)
这些尝试都不起作用
实际上,您无法从指向容器元素的指针创建容器迭代器。 您只能从容器本身获取它们。
我想我需要一些返回迭代器的向量函数
是的, begin()
返回第一个元素的迭代器。 递增以指向您想要的任何元素。 第三,
it = vec.begin() + 2;
或者,更一般地说,
it = std::next(std::begin(container), 2);
即使容器不是随机访问也可以工作。
获取迭代器的主要方法是使用以下方法之一:
std::vector<int>::begin()
std::vector<int>::end()
std::vector<int>::rbegin()
std::vector<int>::rend()
在你的情况下:
std::vector<int> vec = {1,2,3,4,5};
std::vector<int>::iterator it = std::next(vec.begin(), 2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.