使用C 11 範圍循環迭代和修改向量
使用C 11 基於範圍的for 循環遍歷向量時,會出現一個常見問題:您可以在其中刪除某個項目嗎?循環?
基於範圍的 For 循環的局限性
答案是否定的,因為基於範圍的 for 循環設計用於一次訪問容器的每個元素。如果需要修改容器、刪除元素或執行非線性迭代,則應使用傳統的 for 迴圈。
使用傳統循環修改向量
要在迭代時從向量中刪除項目,可以使用傳統的for循環:
for (auto it = inv.begin(); it != inv.end(); ++it) { // Do some stuff if (blah) { it = inv.erase(it); --it; // Decrement iterator to avoid skipping an element } }
傳統循環的優點
傳統循環比基於範圍的for循環提供更多靈活性:
以上是使用基於範圍的 For 迴圈時可以從 C 向量中刪除元素嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!