📅  最后修改于: 2023-12-03 14:39:52.051000             🧑  作者: Mango
multimap::erase()
multimap::erase()
是C++ STL中multimap
容器的一个成员函数,用于从multimap
中删除指定的元素或一个范围的元素。
以下是multimap::erase()
的语法:
iterator erase(iterator position);
iterator erase(const_iterator position);
iterator erase(iterator first, iterator last);
position
:要删除的元素的迭代器。first
和last
:要删除的元素的范围。multimap
中下一个元素的迭代器,如果删除的是multimap
中的最后一个元素,则返回multimap
的end()
迭代器。下面是一个使用multimap::erase()
的示例:
#include <iostream>
#include <map>
int main() {
std::multimap<int, char> mymap;
mymap.insert(std::make_pair(1, 'A'));
mymap.insert(std::make_pair(2, 'B'));
mymap.insert(std::make_pair(2, 'C'));
mymap.insert(std::make_pair(3, 'D'));
mymap.insert(std::make_pair(4, 'E'));
// 删除值为 'B' 的元素
auto it = mymap.find(2);
if (it != mymap.end()) {
mymap.erase(it);
}
// 删除键为 4 的所有元素
mymap.erase(4);
// 输出剩余的元素
for (const auto& pair : mymap) {
std::cout << pair.first << " : " << pair.second << std::endl;
}
return 0;
}
输出:
1 : A
3 : D
multimap::erase()
函数只能删除指定键值的第一个元素。如果你想要删除multimap
中所有指定键值的元素,可以使用循环或算法来实现。multimap::erase()
函数提供了在multimap
容器中删除指定元素的便捷方法。通过使用这个函数,你可以轻松地删除单个元素或范围内的元素。