unordered_map rehash in C++ STL

The std::unordered_map::rehash() is a built in function C++ STL which which sets the number of buckets in container to n or more.
Syntax

void rehash( size_type s );
  • If s is greater than the current buckets into the container then rehashed is done. The new bucket count can be greater than or equal to n.
  • If s is less than current bucket count then there may or may not be any effect of function. It totally depends upon compiler

Parameters : It takes New number of buckets into the container.

Return type : Its return type is none.



Example-1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ code to illustrate the method
// unordered_map rehash
#include <bits/stdc++.h>
  
using namespace std;
  
int main()
{
    unordered_map<char, int> sample;
  
    // Map initialization
    sample = { { 'a', 2 }, { 'b', 4 }, { 'c', 6 } };
  
    cout << " Size of container : " << sample.size() << endl;
    cout << " Initial bucket count : " << sample.bucket_count() << endl;
  
    // changing rehash
  
    sample.rehash(30);
    cout << " Size of container : " << sample.size() << endl;
    cout << " Now bucket count is :  " << sample.bucket_count() << endl;
    return 0;
}

chevron_right


Output:

Size of container : 3
 Initial bucket count : 5
 Size of container : 3
 Now bucket count is :  31

Example-2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ code to illustrate the method
// unordered_map rehash
#include <bits/stdc++.h>
  
using namespace std;
  
int main()
{
    unordered_map<int, int> sample;
  
    // Map initialization
    sample = { { 2, 2 }, { 3, 4 }, { 4, 6 }, { 5, 8 } };
  
    cout << " Size of container : " << sample.size() << endl;
    cout << " Initial bucket count : " << sample.bucket_count() << endl;
  
    // changing rehash
  
    sample.rehash(20);
    cout << " Size of container : " << sample.size() << endl;
    cout << " Now bucket count is :  " << sample.bucket_count() << endl;
    return 0;
}

chevron_right


Output:

Size of container : 4
 Initial bucket count : 7
 Size of container : 4
 Now bucket count is :  23


My Personal Notes arrow_drop_up

All powers are within you You can do anything and everything Believe in that

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.