The unordered_set::reserve() method is a builtin function in C++ STL which is used to request capacity change of unordered_set. It sets the number of buckets in the container to contain at least n elements. If n is greater than the current bucket_count multiplied by the max_load_factor, the container’s bucket_count is increased and a rehash is forced. If n is lower than the bucket_count, then the function has no effect on it.
Syntax:
unordered_set_name.reserve(size_type n)
Parameter: The function accepts a single mandatory parameter n which sets the number of buckets in the container (bucket_count) to the most appropriate to contain at least n elements.
Return Value: This function doesn’t returns anything.
Below programs illustrate the unordered_set::reserve() function:
Program 1:
// C++ program to illustrate // the unordered_set.reserve() #include <iostream> #include <string> #include <unordered_set> using namespace std; int main() { // Declaration of unordered_set unordered_set<string> us; us.reserve(3); us.insert( "geeks" ); us.insert( "for" ); us.insert( "geeks" ); us.insert( "users" ); us.insert( "geeksforgeeks" ); for ( auto it = us.begin(); it != us.end(); it++) { cout << *it << " " ; } return 0; } |
geeksforgeeks users geeks for
Program 2:
// C++ program to illustrate // the unordered_set.reserve() #include <iostream> #include <string> #include <unordered_set> using namespace std; int main() { // Declaration of unordered_set unordered_set<string> us; us.reserve(0); us.insert( "geeks" ); us.insert( "for" ); us.insert( "geeks" ); for ( auto it = us.begin(); it != us.end(); it++) { cout << *it << " " ; } return 0; } |
for geeks
Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.