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

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