C++ Unordered_multimap Library - erase() Function



Description

The C++ function std::unordered_multimap::erase() removes range of element from the the unordered_multimap.

Declaration

Following is the declaration for std::unordered_multimap::erase() function form std::unordered_map() header.

C++11

iterator erase (const_iterator first, const_iterator last);

Parameters

  • first − Input iterator to the initial position in range.

  • last − Input iterator to the final position in range.

Return value

Returns an iterator following the last removed element.

Time complexity

Linear i.e. O(n)

Example

The following example shows the usage of std::unordered_multimap::erase() function.

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_multimap<char, int> umm = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5}
            };

   cout << "Unordered_multimap contains following elements "
        << "before remove operation" << endl;

   for (auto it = umm.begin(); it != umm.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   auto it = umm.begin();
   ++it; ++it;

   umm.erase(umm.begin(), it);

   cout << "Unordered_multimap contains following elements "
        << "after remove operation" << endl;

   for (auto it = umm.begin(); it != umm.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Unordered_multimap contains following elements before remove operation
e = 5
a = 1
b = 2
c = 3
d = 4
Unordered_multimap contains following elements after remove operation
b = 2
c = 3
d = 4
unordered_map.htm
Advertisements