advance (STL Samples)

在 Visual C++ 演示如何使用 事先 标准 (STL)模板库函数。

template<class InIt, class Dist>
   void advance(
      InIt& it, 
      Dist n
   );

备注

备注

类/参数名在原型不匹配版本在头文件。修改某些提高可读性。

事先 STL 函数接受两个参数:

  • 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);
}

Output

The list is: A1  B2  C3  D4  E5  F6  G7  

Advance to the 3rd element.
The element is C3

要求

**标题:**iterator

请参见

概念

标准模板库示例