- iterator[meta header]
- std[meta namespace]
- function template[meta id-type]
- cpp11[meta cpp]
namespace std {
template <class ForwardIterator>
ForwardIterator next(ForwardIterator x,
typename std::iterator_traits<ForwardIterator>::difference_type n = 1); // C++11
template <class InputIterator>
constexpr InputIterator next(InputIterator x,
typename std::iterator_traits<InputIterator>::difference_type n = 1); // C++17
}
- iterator_traits[link iterator_traits.md]
n
回前方に進めたイテレータを返す。
advance()
と違い、引数として渡されたイテレータへの参照を書き換えるのではなく、n
回進んだイテレータのコピーを返す。
advance(x, n);
return x;
- advance[link advance.md]
引数として渡されたイテレータをn
回前方に進めたイテレータのコピー
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
std::vector<int> v = {3, 1, 4, 5, 2};
{
decltype(v)::iterator it = std::next(v.begin()); // イテレータを1回進める
std::cout << *it << std::endl;
}
{
decltype(v)::iterator it = std::next(v.begin(), 2); // イテレータを2回進める
std::cout << *it << std::endl;
}
}
- std::next[color ff0000]
1
4
- C++11
- Clang, C++11 mode: 3.0
- GCC, C++11 mode: 4.4.0
- ICC: ??
- Visual C++: ??
名前 | 説明 |
---|---|
prev() |
n 回後方に進めたイテレータを返す |
advance() |
n 回イテレータを進める |