作者:劉樹偉
日期: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永遠爲真,導致循環無法結束。