为什么map.erase返回迭代器
Why map.erase returns iterator?
我想删除从beginIt到endIt的std::映射的元素erase函数将迭代器返回到删除的最后一个元素后面的元素。是不是结束了?为什么擦除返回迭代器?
auto it = m_map.erase(beginIt, endIt);
C++标准库对其所有容器都采用了一个有用的特性。
一个特别好的用途是,当您删除一组受约束的元素,并在整个容器上迭代时。显然,从容器中删除某些内容会使您传递的迭代器失效。返回下一个候选迭代器是有用的。
我认为这是由于试图在标准容器类型之间统一函数调用。例如,在std::vector
中,返回的迭代器与endIt
不同
相关文章:
- 使用 map<char,strring> 的迭代器返回指针 map<char,strring>*
- 如何从高性能的输入迭代器返回变体?
- 如何为迭代器返回"null"值?
- 将迭代器返回到向量的函数
- 迭代器返回 vector::begin()
- 访问对向量以使用迭代器返回
- 获取迭代器返回的字符串的大小()
- 如何让Lua迭代器返回C结构
- 迭代器返回最后一个元素上的"Junk"
- 指向矢量迭代器返回值的指针
- 使用迭代器返回对字符串的引用
- 如何将指针作为迭代器返回
- 将迭代器返回到多映射中最接近指定时间的时间
- 通过迭代器返回set对象的地址
- 从迭代器返回一个std::list元素的引用
- 为我的向量包装器和迭代器返回'begin'和'end'函数返回什么?
- c++迭代器返回类型
- 从取消引用的迭代器返回 std::map<std::string, int> 时出现巨大的内存泄漏
- 迭代器返回垃圾
- 通过不使用模板的迭代器返回std::list