C++ STL中unordered_multimap的erase函数

C++ STL中unordered_multimap的erase函数

unordered_multimap::erase()是C++ STL中的内置函数,可按位置和按键删除给定范围内的元素。在C++ STL中有三个变体的该函数。

定义了unordered_multimap的以下类型的erase()函数。

  1. 按位置 :它通过给定位置从unordered_multimap中删除元素,并返回指向已删除元素之后的位置的迭代器。
  2. 按键: 它通过键删除元素。它返回已删除的元素数量。
  3. 按范围: 它接收迭代器first和last,并删除它们之间的所有元素,包括first但不包括last。它返回一个指向已删除元素之后的位置的迭代器。

语法:

  1. iterator erase(iterator position)
  2. size erase(key_type& k)
  3. iterator erase(iterator first, iterator last);

下面的程序解释了上述函数。

示例1:

//C++程序演示了unordered_multimap::erase()函数 
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    // unordered_multimap的声明
    unordered_multimap<char, int> sample;
  
    // 插入元素
    sample.insert({ 'a', 2 });
    sample.insert({ 'b', 4 });
    sample.insert({ 'c', 8 });
    sample.insert({ 'd', 10 });
    sample.insert({ 'c', 4 });
    sample.insert({ 'e', 4 });
    sample.insert({ 'f', 4 });
    cout << " unordered_multimap的元素是: \n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
  
    // 按位置删除元素
    sample.erase(sample.begin());
  
    // 删除位置后打印
    cout << " 按位置删除后的unordered_multimap的元素是: \n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
  
    // 按元素删除
    sample.erase('c');
  
    // 删除元素后打印
    cout << " 按名称删除后的unordered_multimap的元素是: \n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
  
    // 按范围删除
    sample.erase(sample.find('e'), sample.end());
  
    // 删除范围后打印
    cout << " 按范围删除后的unordered_multimap的元素是: \n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
    return 0;
}
unordered_multimap的元素是: 
f : 4
b : 4
a : 2
c : 4
c : 8
d : 10
e : 4
 按位置删除后的unordered_multimap的元素是: 
b : 4
a : 2
c : 4
c : 8
d : 10
e : 4按名称删除后的unordered_multimap的元素是: 
b : 4
a : 2
d : 10
 按范围删除后的unordered_multimap的元素是: 
b : 4
a : 2
d : 10

示例2:

// C++程序演示unordered_multimap :: erase()函数
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // 声明unordered_multimap
    unordered_multimap<int, int> sample;
  
    // 插入元素
    sample.insert({ 1, 2 });
    sample.insert({ 2, 4 });
    sample.insert({ 3, 8 });
    sample.insert({ 4, 10 });
    sample.insert({ 3, 4 });
    sample.insert({ 5, 4 });
    sample.insert({ 6, 4 });
    cout << " multimap 元素为:\n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
  
    // 按位置删除元素
    sample.erase(sample.begin());
  
    // 按位置删除后的输出
    cout << " 删除位置元素后的 multimap 元素:\n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
  
    // 按元素删除
    sample.erase(3);
  
    // 按元素删除后的输出
    cout << " 按元素名称删除后的 multimap 元素:\n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
  
    // 按范围删除
    sample.erase(sample.find(5), sample.end());
  
    // 按范围删除后的输出
    cout << " 删除范围的 multimap 元素为:\n";
    for (auto& x : sample)
        cout << x.first << " : " << x.second << endl;
    return 0;
}
multimap 元素为:
6 : 4
2 : 4
1 : 2
3 : 4
3 : 8
4 : 10
5 : 4
 删除位置元素后的 multimap 元素:
2 : 4
1 : 2
3 : 4
3 : 8
4 : 10
5 : 4
 按元素名称删除后的 multimap 元素:
2 : 4
1 : 2
4 : 10
 删除范围的 multimap 元素为:
2 : 4
1 : 2
4 : 10

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程