<八>容器迭代器

容器迭代器

Vector vec;

for(int i=0;i<100;i++){
vec.push_back(i);
}

const_iterator 常量迭代器 (基类)
iterator 普通迭代器 (子类)

iterator 是继承自const_iterator的
class const_iterator{
}
class iterator :public const_iterator{

}

vector::iterator it1=vec.begin();
auto it2=vec.begin();
//普通的正向迭代器
for(;it1!=vec.end();++it1){

cout<<*it1<<endl;
if(*it1%2==0){
    *it1=*it1*2; //修改迭代器指向的元素值
}

}

vector::const_iterator it3=vec.begin();
for(;it3!=vec.end();++it1){
cout<<*it3<<endl;
//it3不能修改元素值
}

//rbegin();返回最后一个元素的反向迭代器表示
//rend(); 返回的是首元素前驱位置的迭代器表示
vector::reverse_iterator rit=vec.rbegin();
auto rit2=vec.rbegin();

for(;rit!=vec.rend();++rit){

}

//常量的反向迭代器,不可以通过他修改内容
vector::const_reverse_iterator rit=vec.rbegin();

posted @ 2022-12-15 09:58  Hello_Bugs  阅读(4)  评论(0编辑  收藏  举报