我希望 vector 迭代器指向一个 vector 元素。我有
#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);
}
但是这些尝试都不起作用。我想我需要一些返回迭代器的 vector 函数,而不是地址(?)
最佳答案
neither of these attempts work
确实,您不能从指向容器元素的指针创建容器迭代器。您只能从容器本身获取它们。
I guess I need some vector function that returns an iterator
是的,begin()
返回指向第一个元素的迭代器。增加它以引用您想要的任何元素。对于第三个,
it = vec.begin() + 2;
或者,更一般地说,
it = std::next(std::begin(container), 2);
即使容器不是随机访问的,它也能工作。
关于c++ - 将 vector 地址分配给迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28051291/