unordered_multimap стирание в C ++ STL
Опубликовано: 30 Декабря, 2021
unordered_multimap :: erase () - это встроенная функция в C ++ STL, которая удаляет элемент из заданного диапазона по позиции и по ключу. В C ++ STL существует три варианта этой функции.
В C ++ для unordered_multimap есть следующие типы функций erase ().
- По позиции : он удаляет элемент из unordered_multimap по заданной позиции и возвращает итератор, указывающий на позицию, следующую сразу за последним из стертых элементов.
- По ключу: удаляет элементы по ключу. Возвращает количество стертых элементов.
- По диапазону: он принимает итератор первым и последним и удаляет все элементы между ними, включая первый, но исключая последний. Он возвращает итератор, указывающий на позицию, следующую сразу за последним из стертых элементов.
Синтаксис:
- iterator erase ( iterator position )
- size erase ( key_type& k )
- iterator erase ( iterator first, iterator last );
Ниже программы объясняют вышеупомянутые функции.
Пример 1
// C++ program to illustrate the // unordered_multimap::erase() function #include <bits/stdc++.h> using namespace std; int main() { // declaration of unordered_multimap unordered_multimap< char , int > sample; // inserts element 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 << " Elements of multimap are :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; // delete element by position sample.erase(sample.begin()); // print after delete by position cout << " Elements of multimap after deleting by position are :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; // erase by Element sample.erase( 'c' ); // print after delete by element cout << " Elements of multimap after deleting by element name :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; // erase by range sample.erase(sample.find( 'e' ), sample.end()); // print after delete by range cout << " Elements of multimap after deleting by range are :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; return 0; } |
Выход:
Элементами multimap являются: ж: 4 а: 4 а: 2 с: 4 с: 8 г: 10 e: 4 Элементами multimap после удаления по позиции являются: а: 4 а: 2 с: 4 с: 8 г: 10 e: 4 Элементы multimap после удаления по имени элемента: а: 4 а: 2 г: 10 e: 4 Элементами multimap после удаления по диапазону являются: а: 4 а: 2 г: 10
Пример 2
// C++ program to illustrate the // unordered_multimap::erase() function #include <bits/stdc++.h> using namespace std; int main() { // declaration of unordered_multimap unordered_multimap< int , int > sample; // inserts element 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 << " Elements of multimap are :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; // delete element by position sample.erase(sample.begin()); // print after delete by position cout << " Elements of multimap after deleting by position are :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; // erase by Element sample.erase(3); // print after delete by element cout << " Elements of multimap after deleting by element name :
" ; for ( auto & x : sample) cout << x.first << " : " << x.second << endl; // erase by range sample.erase(sample.find(5), sample.end()); // print after delete by range cout << " Elements of multimap after deleting by range are :
" ; 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 5: 4 Элементами multimap после удаления по диапазону являются: 2: 4 1: 2 4: 10
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .