我想删除 std::map 从 beginIt 到 endIt 的元素。 erase 函数将迭代器返回到最后一个删除元素之后的元素。不是结束了吗?为什么删除返回迭代器?
auto it = m_map.erase(beginIt, endIt);
最佳答案
这是 C++ 标准库为其所有容器采用的一个有用的特性。
一个特别好的用途是当您删除一组受约束的元素并且迭代整个容器时。显然,从容器中删除某些内容会使您传递的迭代器无效。返回下一个候选迭代器很有用。
关于c++ - 为什么 map.erase 返回迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208805/