función unordered_set rehash() en C++ STL

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;
}
Producción:

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;
}
Producción:

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.

Publicación traducida automáticamente

Artículo escrito por barykrg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *