nextを使えばイテレータitをn個だけ戻すことができる。
it = std::prev(it, n);
実行結果
5
2
4
1
3
ソースコード。
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
std::vector<int> v = { 3, 1, 4, 2, 5 };
decltype(v)::iterator it = v.begin();
it = std::next(it, 5);
for (int i = 5; i > 0; i--) {
it = std::prev(it);
std::cout << *it << std::endl;
}
}
コメント