C++ Unordered_set Library - insert


It inserts new elements in the unordered_set.


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


pair<iterator,bool> insert ( const value_type& val );


  • args − These arguments passed to the constructor.

  • val − These objects to be copied to (or moved as) the value of the new element.

  • hint − It iterators to a position suggested as a hint on where to start the search for the proper insertion point

Return value

It member type iterator is a forward iterator type.


Exception is thrown if any element comparison object throws exception.

Please note that invalid arguments cause undefined behavior.

Time complexity

constant time.


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

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

int main () {
   std::unordered_set<std::string> myset = {"sairam","krishna","mammahe"};
   std::array<std::string,2> myarray = {"ram","mammahe"};
   std::string mystring = "krishna";

   myset.insert (mystring);                        
   myset.insert (mystring);                 
   myset.insert (myarray.begin(), myarray.end()); 
   myset.insert ( {"sai","mammahe"} );          

   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: sai mammahe sairam ram krishna