El método unordered_set::reserve() es una función incorporada en C++ STL que se usa para solicitar un cambio de capacidad de unordered_set. Establece el número de cubos en el contenedor para que contengan al menos n elementos. Si n es mayor que el bucket_count actual multiplicado por max_load_factor , el bucket_count del contenedor aumenta y se fuerza un refrito. Si n es más bajo que bucket_count, entonces la función no tiene efecto sobre él. Sintaxis :
unordered_set_name.reserve(size_type n)
Parámetro : la función acepta un solo parámetro obligatorio n que establece el número de cubos en el contenedor (bucket_count) en el más apropiado para contener al menos n elementos. Valor devuelto : esta función no devuelve nada. Los siguientes programas ilustran la función unordered_set::reserve(): Programa 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; }
geeksforgeeks users geeks for
Programa 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; }
for geeks
Complejidad del tiempo: O(N)