【LibUIDK界面庫系列文章】倒序遍歷vector



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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章