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