unordered_map стирание в C ++ STL

Опубликовано: 3 Декабря, 2021

Функция erase используется для удаления элементов из unordered_map. Unordered_map поддерживает три типа функций стирания:

  1. стирание с помощью итератора : он принимает итератор в качестве параметра и стирает ключ и значение, присутствующие в этом итераторе.
    Синтаксис
     unordered_map.erase (константный итератор);
  2. стирание по ключу : принимает ключ в качестве параметра и стирает ключ и значение.
    Синтаксис
     unordered_map.erase (константный ключ);
  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 : " ;
for ( auto p : um)
cout << p.first << "==>" << p.second << " " ;
cout << " " ;
// erase by iterator
cout << "After erasing by Iterator : " ;
um.erase(um.begin());
for ( auto p : um)
cout << p.first << "==>" << p.second << " " ;
cout << " " ;
// erase by value
cout << "After erasing by Key : " ;
um.erase(4189);
for ( auto p : um)
cout << p.first << "==>" << p.second << " " ;
cout << " " ;
// erase by range
cout << "After erasing by Range : " ;
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 << " " ;
cout << " " ;
return 0;
}
Выход:
Содержимое unordered_map:
4991 ==> 1
519 ==> 1
40 ==> 0
12 ==> 1
4189 ==> 0

После стирания Iterator:
519 ==> 1
40 ==> 0
12 ==> 1
4189 ==> 0

После стирания ключом:
519 ==> 1
40 ==> 0
12 ==> 1

После стирания по диапазону:
519 ==> 1
 

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .