c++ - 为什么 map.erase 返回迭代器?

标签 c++ stdmap erase

我想删除 std::map 从 beginIt 到 endIt 的元素。 erase 函数将迭代器返回到最后一个删除元素之后的元素。不是结束了吗?为什么删除返回迭代器?

auto it = m_map.erase(beginIt, endIt);

最佳答案

这是 C++ 标准库为其所有容器采用的一个有用的特性。

一个特别好的用途是当您删除一组受约束的元素并且迭代整个容器时。显然,从容器中删除某些内容会使您传递的迭代器无效。返回下一个候选迭代器很有用。

关于c++ - 为什么 map.erase 返回迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208805/

相关文章:

c++ - 在 C++ 中定义新运算符

c++ - 在 LINUX 上读取 XML

c++ - 命名参数习语和(抽象)基类

c++ - 从 std 数组中删除元素

c++ - 删除窗口背景 win32API

c++ - 如何在 MPI 部分之外处理 IO 等

c++ - std::map 中不存在的项上的运算符[]的返回值

c++ - 为什么我可以在 main() 之前通过 std::map 填充变量?

Python 安全删除文件

c++ - std::map 插入陷入无限循环或给出访问冲突错误