advance (STL Samples)
Visual C++ で 先 の標準テンプレート ライブラリ関数を使用する方法に (STL) ついて説明します。
template<class InIt, class Dist>
void advance(
InIt& it,
Dist n
);
解説
[!メモ]
プロトタイプのクラスやパラメーター名はヘッダー ファイルのバージョンと一致しない。ただし読みやすさが向上するように変更されました。
先 STL の関数は 2 個のパラメーターを受け取っています :
— InIt 進みます。反復子。
— Dist 反復子をインクリメントする要素の数。
先 STL 関数は格納されている反復子 n の 時刻を進めます。反復子はランダム アクセス反復子の型の場合関数は反復子 += n. として式を評価します 。それ以外の場合は評価して各インクリメントを実行します : ++iterator. 反復子を入力または前方反復子の型である場合n が負である必要があります。
使用例
// Advance.cpp
// compile with: /EHsc
#pragma warning (disable:4786)
#include <iostream>
#include <string>
#include <list>
using namespace std ;
typedef list<string> STRLIST;
int main() {
STRLIST List;
STRLIST::iterator iList;
STRLIST::difference_type dTheDiff;
List.push_back("A1");
List.push_back("B2");
List.push_back("C3");
List.push_back("D4");
List.push_back("E5");
List.push_back("F6");
List.push_back("G7");
// Print out the list
iList=List.begin();
cout << "The list is: ";
for (int i = 0; i < 7 ; i++, iList++)
cout << *iList << " ";
// Initialize to the first element"
iList=List.begin();
cout << "\n\nAdvance to the 3rd element." << endl;
advance(iList,2);
cout << "The element is " << *iList << endl;
dTheDiff = distance( List.begin(), iList);
}
出力
The list is: A1 B2 C3 D4 E5 F6 G7
Advance to the 3rd element.
The element is C3
必要条件
ヘッダー : <iterator>