advance
位置の指定した数によって反復子をインクリメントします。
template<class InputIterator, class Distance>
void advance(
InputIterator& _InIt,
Distance _Off
);
パラメーター
_InIt
インクリメントする入力反復子の要件を満たしていること、反復子。_Off
反復子の差の型に変換できるのインクリメントの数を反復子の位置指定し、整数型が進みます。
解説
スコープは反復子が終了 dereferenceable または過去にする必要がある場所で特異 - [詳細] 以外である必要があります。
InputIterator に合格すると、双方向の反復子用の条件を入力します _Off が負の場合があります。InputIterator が入力または前方反復子の型である場合、_Off が負数である必要があります。
InputIterator がランダム アクセス反復子の要件を満たす事前の関数に定数の複雑さがあります。; は、線形複雑さがあるため、なる可能性があります。
使用例
// iterator_advance.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>
int main( )
{
using namespace std;
int i;
list<int> L;
for ( i = 1 ; i < 9 ; ++i )
{
L.push_back ( i );
}
list <int>::iterator L_Iter, LPOS = L.begin ( );
cout << "The list L is: ( ";
for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++)
cout << *L_Iter << " ";
cout << ")." << endl;
cout << "The iterator LPOS initially points to the first element: "
<< *LPOS << "." << endl;
advance ( LPOS , 4 );
cout << "LPOS is advanced 4 steps forward to point"
<< " to the fifth element: "
<< *LPOS << "." << endl;
advance ( LPOS , -3 );
cout << "LPOS is moved 3 steps back to point to the "
<< "2nd element: " << *LPOS << "." << endl;
}
必要条件
ヘッダー: <iterator>
名前空間: std