在C 迭代期間從映射中刪除項目
當迭代映射並嘗試根據特定條件刪除項目時,它是重要的是要考慮擦除元素對迭代器的影響。在迭代映射時擦除元素將使迭代器無效,從而難以繼續迭代過程。
關聯容器的標準擦除習慣用法
關聯容器的標準習慣用法迭代時從關聯容器(例如地圖)中刪除如下如下:
for (auto it = m.cbegin(); it != m.cend() /* not hoisted */; /* no increment */) { if (must_delete) { m.erase(it++); // or "it = m.erase(it)" since C++11 } else { ++it; } }
解釋
遵循這個習慣用法,您可以安全地從地圖中刪除項目,同時迭代而不使迭代器無效。
以上是如何在迭代過程中安全地從 C 映射中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!