【C++——迭代器】
概述
迭代器用在顺序容器中,比如:list,vector,map这些。
迭代器和指针用法类似,可以用*解引用,但是本质上不是指针。
迭代器类型:
常量迭代器只能读容器,不能改。但是迭代器自身还是可以操作的:++等。
普通迭代器:
vector<int>::iterator i = v.begin();
//常量
vector<int>::const_iterator i = v.cbegin();
反向迭代器:
//非常量
vector<int>::reverse_iterator r= v.rbegin();
//常量
vector<int>::const_reverse_iterator cr = v.crbegin();
注意事项
在遍历容器的时候,不要修改容器,比如追加(push_back)等。会造成迭代器失效。
vector<int>v = { 1,2,3 };
for (auto i = v.begin(); i != v.end(); i++)
{
cout << *i << endl;
v.push_back(*i + 1);
}
迭代器运算:
++,--,+n,-n
关系运算符:>,<,>=,<=,==就是根据迭代器在“同一个容器”中的位置来判断