📅  最后修改于: 2023-12-03 14:39:51.308000             🧑  作者: Mango
multimap
是 C++ STL 中的一个容器,它是一个关联式容器,可以用于存储键-值对。与 map
不同的是,multimap
中的键可以重复,也就是说,它可以存储多个键相同的值。erase()
函数是 multimap
中的一个成员函数,用于删除 multimap
容器中的元素。
下面是 multimap.erase()
函数的语法:
iterator multimap::erase(iterator position);
size_t multimap::erase(key_type const& k);
参数说明:
position
:一个迭代器,指向要删除的元素k
:要删除的键的值返回值说明:
erase()
函数返回一个 size_t
类型的值,表示删除元素的个数。
multimap.erase()
函数用于删除 multimap
容器中的元素。可以有两种方式使用该函数:
删除指定位置的元素:
multimap<int, string> m;
m.insert(pair<int, string>(1, "one"));
m.insert(pair<int, string>(2, "two"));
m.insert(pair<int, string>(3, "three"));
auto it = m.find(2); // 找到键为 2 的元素
m.erase(it); // 删除该元素
// 输出 multimap 中的元素
for (auto &p: m) {
cout << p.first << " : " << p.second << endl;
}
输出结果:
1 : one
3 : three
删除指定的键所对应的所有元素:
multimap<int, string> m;
m.insert(pair<int, string>(1, "one"));
m.insert(pair<int, string>(2, "two"));
m.insert(pair<int, string>(2, "three"));
m.insert(pair<int, string>(3, "four"));
m.insert(pair<int, string>(3, "five"));
m.insert(pair<int, string>(3, "six"));
auto cnt = m.erase(2); // 删除键为 2 的所有元素
// 输出 multimap 中的元素
for (auto &p: m) {
cout << p.first << " : " << p.second << endl;
}
cout << "Number of elements erased: " << cnt << endl;
输出结果:
1 : one
3 : four
3 : five
3 : six
Number of elements erased: 2
multimap
中,erase()
函数不会产生任何影响,返回值为 0。multimap
中有多个相同的元素,erase()
函数会将它们全部删除,并返回删除的元素个数。multimap
中,it
将指向 multimap
的末尾。以上是 multimap.erase()
函数的介绍。它可以很方便地删除 multimap
中的元素。如果您想了解更多关于 multimap
的内容,可以查看 STL 中其他容器的介绍。