C++ std::map::erase 可按键删除,返回被删个数(0 或 1);也可按迭代器删除单个元素。
原型
size_type erase(const key_type& k);
iterator erase(iterator pos);参数
k:键。或指向要删元素的迭代器。
返回值
按键删除时返回删除个数;按迭代器删除时返回下一位置。
示例
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> m{{"Ada", 95}, {"Lin", 88}};
m.erase("Ada");
std::cout << m.size() << " " << m.count("Ada") << "\n";
return 0;
}输出:
1 0
注意事项
遍历时删除当前元素,应使用 it = m.erase(it),不要在循环里保存过期迭代器。