C++ Unordered_set Library - erase



Description

It removes from the unordered_set container either a single element or a range of elements.

Declaration

Following is the declaration for std::unordered_set::erase.

C++11

iterator erase ( const_iterator position );

Parameters

  • position − It indicates about position of single element.

  • k − K is the value of element to be removed.

  • args − These arguments passed to the constructor.

Return value

It returns member type iterator is a forward iterator type.

Exceptions

Exception is thrown if any element comparison object throws exception.

Please note that invalid arguments cause undefined behavior.

Time complexity

constant time.

Example

The following example shows the usage of std::unordered_set::erase.

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myset =
      {"USA","Canada","France","UK","Japan","Germany","Italy"};

   myset.erase ( myset.begin() );                  
   myset.erase ( "France" );                       
   myset.erase ( myset.find("Japan"), myset.end() ); 

   std::cout << "myset contains:";
   for ( const std::string& x: myset ) std::cout << " " << x;
   std::cout << std::endl;

   return 0;
}

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

myset contains: Canada UK Italy
unordered_set.htm
Advertisements