名前空間
変種
操作

std::advance

提供: cppreference.com
< cpp‎ | iterator
Defined in header <iterator>
template< class InputIt, class Distance >
void advance( InputIt& it, Distance n );

イテレータitn要素分インクリメントします。

nが負の場合、イテレータをデクリメントします。その場合、InputItBidirectionalIteratorの要件を満たしている必要があり、そうでなければ動作は未定義です。

目次

[編集] パラメータ

it - 進められる反復子
n - 進める要素数
型の要件
-
InputItInputIterator

の要求を満足しなければなりません。

[編集] 戻り値

(なし)

[編集] 計算量

線形

ただし、InputItRandomAccessIteratorの要件も満たしている場合は、計算量は定数となります。

[編集]

#include <iostream>
#include <iterator>
#include <vector>
 
int main() 
{
    std::vector<int> v{ 3, 1, 4 };
 
    auto vi = v.begin();
 
    std::advance(vi, 2);
 
    std::cout << *vi << '\n';
}

出力:

4

[編集] 参照

2つのイテレータの間の距離を返します
(関数) [edit]