C++ Unordered_map Library - rehash() Function



Description

The C++ function std::unordered_map::rehash() Sets the number of buckets in the container to n or more.

If n is greater than the current number of buckets in the container, a rehash is forced. The new bucket count can either be equal or greater than n.

If n is lower than the current number of buckets in the container, the function may have no effect on the bucket count and may not force a rehash.

Declaration

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

C++11

void rehash(size_type n);

Parameters

n − New number of buckets

Return value

None

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::rehash() function.

#include <iostream>
#include <unordered_map>

using namespace std;

int main (void) {
   unordered_map<char, int> mymap;

   cout << "Initial bucket_count: " << mymap.bucket_count() << endl;

   mymap.rehash(20);

   cout << "Current bucket_count: " << mymap.bucket_count() << endl;

   return 0;
}

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

Initial bucket_count: 11
Current bucket_count: 23
unordered_map.htm
Advertisements