-
multimap::erase() is a built-in function in C++ STL which is used to erase element from the container. It can be used to erase keys, elements at any specified position or a given range.
- Syntax for erasing a key:
multimap_name.erase(key)
Parameters: The function accepts one mandatory parameter key which specifies the key to be erased in the multimap container.
Return Value: The function does not return anything. It erases all the elements with the specified key.
// C++ program to illustrate// multimap::erase(key)#include <bits/stdc++.h>usingnamespacestd;intmain(){// initialize containermultimap<int,int> mp;// insert elements in random ordermp.insert({ 2, 30 });mp.insert({ 1, 40 });mp.insert({ 3, 60 });mp.insert({ 2, 20 });mp.insert({ 5, 50 });// prints the elementscout <<"The multimap before using erase() is : \n";cout <<"KEY\tELEMENT\n";for(autoitr = mp.begin(); itr != mp.end(); ++itr) {cout << itr->first<<'\t'<< itr->second <<'\n';}// function to erase given keysmp.erase(1);mp.erase(2);// prints the elementscout <<"\nThe multimap after applying erase() is : \n";cout <<"KEY\tELEMENT\n";for(autoitr = mp.crbegin(); itr != mp.crend(); ++itr) {cout << itr->first<<'\t'<< itr->second <<'\n';}return0;}chevron_rightfilter_noneOutput:The multimap before using erase() is : KEY ELEMENT 1 40 2 30 2 20 3 60 5 50 The multimap after applying erase() is : KEY ELEMENT 5 50 3 60
- Syntax for removing a position:
multimap_name.erase(iterator position)
Parameters: The function accept one mandatory parameter position which specifies the iterator that is the reference to the position of the element to be erased.
Return Value: The function does not returns anything.
Program below illustrate the above syntax:
// C++ program to illustrate// multimap::erase(position)#include <bits/stdc++.h>usingnamespacestd;intmain(){// initialize containermultimap<int,int> mp;// insert elements in random ordermp.insert({ 2, 30 });mp.insert({ 1, 40 });mp.insert({ 3, 60 });mp.insert({ 2, 20 });mp.insert({ 5, 50 });// prints the elementscout <<"The multimap before using erase() is : \n";cout <<"KEY\tELEMENT\n";for(autoitr = mp.begin(); itr != mp.end(); ++itr) {cout << itr->first<<'\t'<< itr->second <<'\n';}// function to erase given positionautoit = mp.find(2);mp.erase(it);autoit1 = mp.find(5);mp.erase(it1);// prints the elementscout <<"\nThe multimap after applying erase() is : \n";cout <<"KEY\tELEMENT\n";for(autoitr = mp.crbegin(); itr != mp.crend(); ++itr) {cout << itr->first<<'\t'<< itr->second <<'\n';}return0;}chevron_rightfilter_noneOutput:The multimap before using erase() is : KEY ELEMENT 1 40 2 30 2 20 3 60 5 50 The multimap after applying erase() is : KEY ELEMENT 3 60 2 20 1 40
- Syntax for erasing a given range:
multimap_name.erase(iterator position1, iterator position2)
Parameters: The function accepts two mandatory parameters which are described below:
- position1 – specifies the iterator that is the reference to the element from which removal is to be done.
- position2 – specifies the iterator that is the reference to the element upto which removal is to be done.
Return Value: The function does not returns anything. It removes all the elements in the given range of iterators.
Program below illustrate the above syntax:
// C++ program to illustrate// multimap::erase()#include <bits/stdc++.h>usingnamespacestd;intmain(){// initialize containermultimap<int,int> mp;// insert elements in random ordermp.insert({ 2, 30 });mp.insert({ 1, 40 });mp.insert({ 3, 60 });mp.insert({ 2, 20 });mp.insert({ 5, 50 });// prints the elementscout <<"The multimap before using erase() is : \n";cout <<"KEY\tELEMENT\n";for(autoitr = mp.begin(); itr != mp.end(); ++itr) {cout << itr->first<<'\t'<< itr->second <<'\n';}// function to erase in a given range// find() returns the iterator reference to// the position where the element isautoit1 = mp.find(2);autoit2 = mp.find(5);mp.erase(it1, it2);// prints the elementscout <<"\nThe multimap after applying erase() is : \n";cout <<"KEY\tELEMENT\n";for(autoitr = mp.crbegin(); itr != mp.crend(); ++itr) {cout << itr->first<<'\t'<< itr->second <<'\n';}return0;}chevron_rightfilter_noneOutput:The multimap before using erase() is : KEY ELEMENT 1 40 2 30 2 20 3 60 5 50 The multimap after applying erase() is : KEY ELEMENT 5 50 1 40
Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.

