Open In App

unordered_set reserve() function in C++ STL

Last Updated : 07 Jun, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

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: 

CPP
// 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; 
} 
Output:
geeksforgeeks users geeks for

Program 2: 

CPP
// 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; 
} 
Output:
for geeks

Time complexity: O(N)
 


Next Article

Similar Reads