我的代码是
list<int> foo;
for (int i = 0; i < 20; i++) {
foo.push_back(i);
}
for (std::list<int>::iterator it = foo.begin(); it != foo.end(); it++)
std::cout << *it << ' ';
我希望我的迭代器增加 3
输出将是:
0 3 6 9 12 15 18
代替:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
最佳答案
在列表中,您不能立即将迭代器推进n
(例如it+3
),因为它不是随机访问迭代器。但是,您可以将迭代器递增 3 次:++(++(++it)))
。
正如评论中所指出的,您可以使用 std::advance(it,3)
但对于列表迭代器,它将归结为重复调用 ++it
3 次。
关于c++ - 如何使用迭代器在列表中导航? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728194/