1. 程式人生 > >迭代器和下標之間轉換

迭代器和下標之間轉換

轉換主要是使用stl中的advance和distance函式來進行的,
advance是將iterator移動指定個元素,distance是計算兩個iterator直接的距離。

distance計算第一個引數到第二個引數之間的距離。如果第二個引數的順序在第一個引數前面的話,函式是會返回負值的;如果迭代器不在一個容器內,程式會丟擲異常。

advance是將第一個引數向後移動第二個引數指定個元素。如果第二個引數為負,則向前移動;如果向前或向後移動超出容器範圍,則丟擲異常。

#include
#include
#include
using namespace std;
int main ()

 list mylist; 
 for (int i=0; i<10; i++)
  mylist.push_back (i*10.0); 

 list::iterator first = mylist.begin(); 
 list::iterator last = mylist.end(); 
 advance(first, 1);
 cout << "The distance is: " << distance(first,last) << endl; 
 return 0;
}