Biblioteca C ++ Unordered_map - función rehash ()

Descripción

La función C ++ std::unordered_map::rehash()Establece el número de cubos en el contenedor en n o más.

Si n es mayor que el número actual de cubos en el contenedor, se fuerza un refrito. El nuevo recuento de depósitos puede ser igual o mayor que n.

Si n es menor que el número actual de cubos en el contenedor, es posible que la función no tenga ningún efecto en el conteo de cubos y no fuerce un refrito.

Declaración

A continuación se muestra la declaración de la función std :: unordered_map :: rehash () del encabezado std :: unordered_map.

C ++ 11

void rehash(size_type n);

Parámetros

n - Nuevo número de cubos

Valor devuelto

Ninguna

Complejidad del tiempo

Lineal, es decir, O (n) en caso medio.

Cuadrático, es decir, O (n 2 ) en el peor de los casos.

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: unordered_map :: rehash ().

#include <iostream>
#include <unordered_map>

using namespace std;

int main (void) {
   unordered_map<char, int> mymap;

   cout << "Initial bucket_count: " << mymap.bucket_count() << endl;

   mymap.rehash(20);

   cout << "Current bucket_count: " << mymap.bucket_count() << endl;

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Initial bucket_count: 11
Current bucket_count: 23