c vector的迭代器倒序遍历代码实现
第一个元素是从end-1开始的,end指向的不是最后一个元素
for(std::vector::iterator it=myvec.end()-1;it>=myvec.begin();it--)
{
//处理逻辑自己定义,我这里自己直接输出了
cout<<*it<
使用反向迭代器逆序遍历vector代码
for(std::set::reverse_iterator it2=myvec.rbegin();it2 != myvec.rend(); it2)
{
cout<<*it2<
用下面的方法遍历是错误的,会引起死循环
size_t ncount = vvalue.size();
for (size_t i = ncount - 1; i >= 0; --i) {
int n = 0;
}
这是因为size_t是无符号整数,它是值永远是大于等于0的,所以 i >= 0永远为真,导致循环无法结束。