次の方法で共有


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>

参照

概念

標準テンプレート ライブラリのサンプル