Unordered_set ::rehash() es una función incorporada en C++ STL que se usa para establecer la cantidad de cubos en el contenedor de unordered_set en un tamaño dado o más. Si el tamaño es mayor que el tamaño actual del contenedor, se llama al refrito. Si es más bajo que el tamaño actual, entonces la función no tiene efecto en el recuento de cubos de hash. Sintaxis :
unordered_set_name.rehash(size_type n)
Parámetro : la función acepta un parámetro obligatorio n que especifica el número mínimo de cubos para el contenedor. Valor devuelto : esta función no devuelve nada. Los siguientes programas ilustran la función unordered_set::rehash(): Programa 1:
CPP
// C++ program to illustrate the // unordered_set::rehash() #include <iostream> #include <string> #include <unordered_set> using namespace std; int main() { // declaration unordered_set<string> us; // rehashed us.rehash(9); // insert elements us.insert("geeks"); us.insert("for"); us.insert("geeks"); us.insert("users"); for (auto it = us.begin(); it != us.end(); it++) { cout << *it << " "; } cout << "\nThe bucket count is " << us.bucket_count(); return 0; }
users for geeks The bucket count is 11
NOTA: Aquí rehash (9), lo que significa que la cantidad de cubos en unordered_set dado es 9, pero en lugar de 9, aquí se imprime 11, porque 11 es el primer número primo después del 9, por eso se imprime 11 en lugar de 9.
Programa 2:
CPP
// C++ program to illustrate the // unordered_set::rehash() #include <iostream> #include <string> #include <unordered_set> using namespace std; int main() { // declaration unordered_set<string> us; // rehash the unordered_set us.rehash(20); // insert strings us.insert("geeks"); us.insert("for"); us.insert("geeks"); us.insert("users"); us.insert("are"); us.insert("experts"); us.insert("in"); us.insert("DS"); // prints the elements for (auto it = us.begin(); it != us.end(); it++) { cout << *it << " "; } cout << "\nThe bucket count is " << us.bucket_count(); return 0; }
DS in experts are users for geeks The bucket count is 23
NOTA: Aquí rehash (20), lo que significa que la cantidad de cubos en unordered_set dado es 20, pero en lugar de 20, aquí se imprime 23, porque 23 es el primer número primo después de 20, por eso se imprime 23 en lugar de 20.