const iterator
const iterator相当于指针常量。即,指针本身为常量,指针自身不可修改,但指向内容可修改。
const_iterator
const_iterator相当于常量指针。即,指针指向的内容为常量,指针本身可修改,但指向内容不可修改。
例子
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
const vector<int>::iterator iter = vec.begin();
iter++;// 错误: iter类型,自身不可修改
*iter = 99;// 正确: 指向的内容可修改
vector<int>::const_iterator it = vec.begin();
*it = 50;// 错误: it指向内容不可修改
++it;// 正确: 自身可修改
return 0;
}
常用方法
const MyData& data = MyDataInfo::Instance().GetMyData();//获取一个数据结构体
/*获取数据结构体里的具体数据*/
map<int,string>::const_iterator iter = data.mapData.begin();//正确
const map<int,string>::iterator iter = data.mapData.begin();//错误
map<int,string>::iterator iter = data.mapData.begin();//错误