unordered_map rehash in C++ STL
Last Updated :
18 May, 2022
The std::unordered_map::rehash() is a built in function C++ STL 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:
CPP
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map< char , int > sample;
sample = { { 'a' , 2 }, { 'b' , 4 }, { 'c' , 6 } };
cout << " Size of container : " << sample.size() << endl;
cout << " Initial bucket count : " << sample.bucket_count() << endl;
sample.rehash(30);
cout << " Size of container : " << sample.size() << endl;
cout << " Now bucket count is : " << sample.bucket_count() << endl;
return 0;
}
|
Output:
Size of container : 3
Initial bucket count : 5
Size of container : 3
Now bucket count is : 31
Example-2:
CPP
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map< int , int > sample;
sample = { { 2, 2 }, { 3, 4 }, { 4, 6 }, { 5, 8 } };
cout << " Size of container : " << sample.size() << endl;
cout << " Initial bucket count : " << sample.bucket_count() << endl;
sample.rehash(20);
cout << " Size of container : " << sample.size() << endl;
cout << " Now bucket count is : " << sample.bucket_count() << endl;
return 0;
}
|
Output:
Size of container : 4
Initial bucket count : 7
Size of container : 4
Now bucket count is : 23
Share your thoughts in the comments
Please Login to comment...