C++ Primer學習7:const iterator與const_iterator的區別

const iterator是指iterator是參量,不可修改

const_iterator是iterator指向的元素不可修改

#include <iostream>
#include <vector>
using namespace std;

int main()
{

    vector<int> num(10,9);
    //對比下面2個迭代器
    const vector<int>::iterator iter1 = num.begin(); //常量迭代器,該迭代器不能改變
//    ++iter1; //error

    vector<int>::const_iterator iter2 = num.begin();  //該迭代器所指向的元素的值不能改變
    ++iter2; //true
//    *iter2 = 7;  //error


    int i;
    vector<int>::iterator iter;
    for(i = 0,iter = num.begin(); iter != num.end(); ++iter,++i)
    {
        *iter = i;
    }

    //迭代器的算術運算
    //iter + n
    vector<int>::iterator iter3 = num.begin();
    vector<int>::iterator iter4 = num.end();
    vector<int>::iterator mid = num.begin() + num.size() / 2;
    iter3 += 2;
    cout << "*iter3 = " << *iter3 << endl;
    cout << "iter4到iter3的距離:"<< iter4 - iter3 <<endl;
    cout << "*mid = " << *mid << endl;
    cout << "mid到begin的距離:"<< mid - num.begin() <<endl;
//  cout << *( (num.begin() + num.end())/2  );  //error: 2個迭代器不能相加,能相減


    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章