C++ Unordered_map Library - reserve() Function



Description

The C++ function std::unordered_map::reserve() sets the number of buckets in the container to the most appropriate to contain at least n elements.

If n is greater than the current bucket_count() * max_load_factor() then the container's bucket count is increased and a rehash is forced and if n is lower than that, the function may have no effect.

Declaration

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

C++11

void reserve(size_type n);

Parameters

n − New capacity of the container.

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

#include <iostream>
#include <unordered_map>

using namespace std;

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

   cout << "Initial bucket count = " << um.bucket_count() << endl;

   um.reserve(5);

   cout << "Bucket count after reserve = "
       << um.bucket_count() << endl;

   return 0;
}

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

Initial bucket count = 11
Bucket count after reserve = 5
unordered_map.htm
Advertisements