赞
踩
反向遍历vector时for循环永远无法结束的坑,错误写法
void test_vector()
{
vector<int>array{1,2,3};
for(vector<int>::size_type i=array.size()-1;i>=0;--i)
{
qDebug()<<i<<" : "<<array[i];
Sleep(1500);
}
代码运行起来的结果如下
这是因为vector::size_type是一个unsigned int,无符号的整数是>=0的,所以上面的循环条件永远为true。程序一直循环,产生随机数,直至崩溃。
正确的写法:
void test_vector()
{
vector<int>array{1,2,3};
for(vector<int>::size_type i=array.size();i>0;--i)
{
qDebug()<<i-1<<" : "<<array[i-1];
Sleep(1500);
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。