📅  最后修改于: 2020-10-20 06:00:32             🧑  作者: Mango
C++ multimap delete()函数用于从Multimap容器中删除与给定键值关联的单个元素或一系列元素。因此,将通过删除元素的数量来减小尺寸。
void erase (iterator position); //until C++ 11
size_type erase (const key_type& k); //until C++ 11
void erase (iterator first, iterator last); //until C++ 11
iterator erase (const_iterator position); //since C++ 11
size_type erase (const key_type& k); //since C++ 11
iterator erase (const_iterator first, const_iterator last); //since C++ 11
position:迭代器,指向要从Multimap移除的单个元素。
k:要从Multimap移除的元素的键。
第一:擦除范围的开始。
last:要擦除范围的末尾。
它返回一个迭代器,该迭代器指向已删除元素的下一个元素或返回已删除元素的数量。
擦除(位置):摊销常数。
擦除(值):容器大小的对数。
擦除(第一,最后):第一和最后之间的距离线性。
迭代器,引用和指向该函数删除的元素的指针均无效。
所有其他迭代器,指针和引用均保持其有效性。
容器已修改。
删除的元素将被修改。尽管同时访问其他元素是安全的,但容器中的迭代范围并不安全。
此函数不会引发异常。
如果指定了无效的范围或位置,则将导致未定义的行为。
让我们看一个简单的示例,该示例通过迭代器擦除元素。
#include
#include
输出:
Before erasing the element:
a => 100
b => 200
b => 300
c => 400
After erasing the element:
a => 100
b => 300
c => 400
在上面的示例中,元素被迭代器擦除。
让我们看一个简单的示例,用给定的键值擦除Multimap的元素:
#include
#include
输出:
Before erasing the element:
a => 100
b => 200
b => 300
c => 400
After erasing the element:
a => 100
c => 400
在上面的示例中,delete(key)函数从多重映射中删除所有键“ b”及其值。
让我们看一个简单的示例,以给定范围擦除元素:
#include
#include
输出:
Before erasing the element are:
Size is: 4
a => 100
b => 200
b => 300
c => 400
After erasing the element are:
Size is: 0
在以上示例中,擦除(第一,最后)函数用于擦除具有给定范围(即开始到结束)的元素。
让我们看一个简单的示例,从多重映射中删除所有奇数:
#include
输出:
After erasing odd numbers, elements are:
2, two
4, four
6, six
在上面的示例中,所有奇数均已删除,并显示偶数。