当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ unordered_map erase用法及代码示例


擦除函数用于擦除unordered_map中的元素。 unordered_map支持三种擦除函数:

  1. 迭代器擦除:它将迭代器作为参数,并删除该迭代器上存在的键和值。
    句法
    unordered_map.erase(const iterator);
  2. 按键擦除:它将键作为参数,并擦除键和值。
    句法

    unordered_map.erase(const key);
  3. 按范围擦除:它将两个迭代器作为参数,并擦除介于两者之间的所有键和值(包括起始迭代器和结束迭代器)。
    用法:
    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 << "Contents of the unordered_map:\n"; 
    for (auto p:um) 
        cout << p.first << "==>" << p.second << "\n"; 
    cout << "\n"; 
  
    // erase by iterator 
    cout << "After erasing by Iterator:\n"; 
    um.erase(um.begin()); 
    for (auto p:um) 
        cout << p.first << "==>" << p.second << "\n"; 
    cout << "\n"; 
  
    // erase by value 
    cout << "After erasing by Key:\n"; 
    um.erase(4189); 
    for (auto p:um) 
        cout << p.first << "==>" << p.second << "\n"; 
    cout << "\n"; 
  
    // erase by range 
    cout << "After erasing by Range:\n"; 
    auto it = um.begin(); 
    it++; // Returns iterator pointing to second element 
    um.erase(it, um.end()); 
    for (auto p:um) 
        cout << p.first << "==>" << p.second << "\n"; 
    cout << "\n"; 
  
    return 0; 
}
输出:
Contents of the unordered_map:
4991==>1
519==>1
40==>0
12==>1
4189==>0

After erasing by Iterator:
519==>1
40==>0
12==>1
4189==>0

After erasing by Key:
519==>1
40==>0
12==>1

After erasing by Range:
519==>1
 




相关用法


注:本文由纯净天空筛选整理自DrRoot_大神的英文原创作品 unordered_map erase in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。