C++ Unordered_map Library - erase() Function


Advertisements

Description

The C++ function std::unordered_map::equal() returns range of elements that matches specific key.

In unordered_map containers, where keys are unique, the range will include one element at most. If k does not match any key in the container, the range returned has end as both its lower and upper range bounds.

Declaration

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

C++11

pair<iterator,iterator> equal_range(const key_type& k);
pair<const_iterator,const_iterator> equal_range(const key_type& k) const;

Parameters

k − Key to be searched.

Description

The C++ function std::unordered_map::erase() removes single element of the unordered_map from position.

This member function decreases size of unordered_map by one.

Declaration

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

C++11

iterator erase(const_iterator position);

Parameters

position − Iterator to the element to remove.

Return value

Returns an iterator pointing to the position immediately following the last of the elements erased.

Time complexity

Constant i.e. O(1)

Example

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

#include <iostream>
#include <unordered_map>

using namespace std;

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

   cout << "Unordered map contains following elements before erase operation" 
      << endl;

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

   um.erase(um.begin());

   cout << endl;
   cout << "Unordered map contains following elements after erase operation" 
      << endl;

   for (auto it = um.begin(); it != um.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 map contains following elements before erase operation
e = 5
a = 1
b = 2
c = 3
d = 4
Unordered map contains following elements after erase operation
a = 1
b = 2
c = 3
d = 4
unordered_map.htm
Advertisements