Descripción
La función C ++ std::unordered_map::reserve()establece el número de cubos en el contenedor al más apropiado para contener al menos n elementos.
Si n es mayor que el actual bucket_count () * max_load_factor (), entonces el conteo de cubos del contenedor se incrementa y se fuerza un refrito y si n es menor que eso, la función puede no tener ningún efecto.
Declaración
A continuación se muestra la declaración de la función std :: unordered_map :: reserve () del encabezado std :: unordered_map.
C ++ 11
void reserve(size_type n);
Parámetros
n - Nueva capacidad del contenedor.
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 :: reserve ().
#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
unordered_map<char, int> um;
cout << "Initial bucket count = " << um.bucket_count() << endl;
um.reserve(5);
cout << "Bucket count after reserve = "
<< um.bucket_count() << endl;
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
Initial bucket count = 11
Bucket count after reserve = 5