首頁 >後端開發 >C++ >如何在迭代期間安全地從 std::list 中刪除元素?

如何在迭代期間安全地從 std::list 中刪除元素?

Barbara Streisand
Barbara Streisand原創
2024-12-21 04:25:11421瀏覽

How to Safely Delete Elements from a std::list During Iteration?

在 std::list 中迭代期間刪除元素

迭代 std::list 時,在維護有效迭代器的同時刪除元素可能具有挑戰性。考慮以下程式碼:

新增註解掉的行以立即刪除不活動的項目將導致「清單迭代器不可遞增」錯誤。這是因為刪除元素會使迭代器無效。

避免多次傳遞

要在迭代時有效地刪除項目,請考慮使用while 循環方法:

這裡的關鍵是在刪除元素之前增加迭代器。或者,可以使用「i = items.erase(i)」。這允許在迭代時安全有效地刪除元素。

以上是如何在迭代期間安全地從 std::list 中刪除元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn