菜鸟笔记
提升您的技术认知

c++ vector的迭代器倒序遍历代码实现

c++ vector的迭代器倒序遍历代码实现

第一个元素是从end-1开始的,end指向的不是最后一个元素

for(std::vector<int>::iterator it=myvec.end()-1;it>=myvec.begin();it--)
{
    //处理逻辑自己定义,我这里自己直接输出了
       cout<<*it<<endl;
    if(it==myvec.begin())
        break;//走到这里就不能再减了
}

使用反向迭代器逆序遍历vector代码

for(std::set<int>::reverse_iterator it2=myvec.rbegin();it2 != myvec.rend();++it2)
{
    cout<<*it2<<endl;
}//迭代器一定要使用reverse_iterator

用下面的方法遍历是错误的,会引起死循环

size_t nCount = vValue.size();
for (size_t i = nCount - 1; i >= 0; --i) {
 int n = 0;
}

这是因为size_t是无符号整数,它是值永远是大于等于0的,所以 i >= 0永远为真,导致循环无法结束。