作者:刘树伟
日期:2017-01-11
std::vector<int> vValue;
vValue.push_back(1);
vValue.push_back(2);
vValue.push_back(3);
std::vector<int>::reverse_iterator rit = vValue.rbegin();
// 注意,倒序遍历时,rit也是++,而不是--。
for (; rit != vValue.rend(); ++rit)
{
int nValue = *rit;
}
用下面的方法遍历是错误的,会引起死循环。
size_t nCount = vValue.size();
for (size_t i = nCount - 1; i >= 0; --i) {
int n = 0;
}
这是因为size_t是无符号整数,它是值永远是大于等于0的,所以 i >= 0永远为真,导致循环无法结束。