C++ Unordered_set Library - constructor


Advertisements

Description

It is used to construct an unordered_set container object.

Declaration

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

C++98

explicit unordered_set ( size_type n = /* see below */,
                         const hasher& hf = hasher(),
                         const key_equal& eql = key_equal(),
                         const allocator_type& alloc = allocator_type() );

Parameters

  • n − It contains information about minimum number of initial buckets.

  • hf − It is a hasher function object.

  • eql − It is a comparison function object.

  • alloc − It is an allowcator object.

  • first, last − Input iterators.

  • ust − It is an another unordered_set object of the same type.

  • il − It is an initializer_list object.

Return value

none

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::unordered_set.

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

template<class T>
T cmerge (T a, T b) { T t(a); t.insert(b.begin(),b.end()); return t; }

int main () {
   std::unordered_set<std::string> first;                               
   std::unordered_set<std::string> second ( {"100","200","300"} );    
   std::unordered_set<std::string> third ( {"400","500","600"} ); 
   std::unordered_set<std::string> fourth ( second );             
   std::unordered_set<std::string> fifth ( cmerge(third,fourth) ); 
   std::unordered_set<std::string> sixth ( fifth.begin(), fifth.end() ); 

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

   return 0;
}

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

sixth contains: 500 400 300 600 100 200
unordered_set.htm
Advertisements