C++ Unordered_map Library - unordered_map() Function


Advertisements

Description

The C++ function std::unordered_map::unordered_map() constructs an unordered_map with as many elements as in range of first to last.

Declaration

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

C++11

unordered_map(InputIterator first, InputIterator last,
              size_type n = /* Implementation defined */,
              const hasher& hf = hasher(),
              const key_equal& eql = key_equal(),
              const allocator_type& alloc = allocator_type()
             );

Parameters

  • first − Input iterator to initial position.

  • last − Input iterator to final position.

  • n − Maximum number of initial buckets.

  • hf − Hash function to use.

  • eql − Comparision function object that returns true if provided two container objects are to be considered equal

  • alloc − Allocator to use for all memory allocations of this container.

Return value

Constructor never returns value.

Time complexity

Linear i.e. O(n) in average case.

Quadratic i.e. O(n2) in worst case.

Example

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

#include <iostream>
#include <unordered_map>

using namespace std;

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

   unordered_map<char, int>um2(um1.begin(), um2.end());

   cout << "Unordered_map contains following elements" << endl;

   for (auto it = um2.begin(); it != um2.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
a = 1
b = 2
c = 3
d = 4
e = 5
unordered_map.htm
Advertisements