C++ STL中的unordered_map erase

C++ STL中的unordered_map erase

erase函数用于从unordered_map中删除元素。unordered_map支持三种类型的erase函数:

  1. 按迭代器删除: 它以迭代器作为参数,删除该迭代器所指的键和值。

  2. 语法
    cpp unordered_map.erase(const iterator);

  3. 按键删除: 它以键作为参数,并删除该键和对应的值。

    语法

unordered_map.erase(const key);
  1. 按范围删除: 它以两个迭代器作为参数,并删除它们之间(包括开始迭代器和不包括结束迭代器)的所有键和值。

    语法:

unordered_map.erase(const iteratorStart, const iteratorEnd);
// CPP program to demonstrate implementation of
// erase function in unordered_map.
# include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    unordered_map<int, bool> um;
  
    // Adding some elements in the map.
    um[12] = true;
    um[4189] = false;
    um[519] = true;
    um[40] = false;
    um[4991] = true;
  
    cout << "unordered_map的内容:\n";
    for (auto p : um)
        cout << p.first << "==>" << p.second << "\n";
    cout << "\n";
  
    // 按迭代器删除
    cout << "按迭代器删除后:\n";
    um.erase(um.begin());
    for (auto p : um)
        cout << p.first << "==>" << p.second << "\n";
    cout << "\n";
  
    // 按键删除
    cout << "按键删除后:\n";
    um.erase(4189);
    for (auto p : um)
        cout << p.first << "==>" << p.second << "\n";
    cout << "\n";
  
    // 按范围删除
    cout << "按范围删除后:\n";
    auto it = um.begin();
    it++; // 返回指向第二个元素的迭代器
    um.erase(it, um.end());
    for (auto p : um)
        cout << p.first << "==>" << p.second << "\n";
    cout << "\n";
  
    return 0;
}
unordered_map的内容:
4991==>1
519==>1
40==>0
12==>1
4189==>0

按迭代器删除后:
519==>1
40==>0
12==>1
4189==>0

按键删除后:
519==>1
40==>0
12==>1

按范围删除后:
519==>1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程