在 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中文网其他相关文章!