迭代器和下標之間轉換
阿新 • • 發佈:2019-02-15
轉換主要是使用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;
}