Biblioteca C ++ Unordered_map - função reserve ()

Descrição

A função C ++ std::unordered_map::reserve()define o número de depósitos no contêiner como o mais apropriado para conter pelo menos n elementos.

Se n for maior que o bucket_count () * max_load_factor () atual, então a contagem de bucket do contêiner é aumentada e um rehash é forçado e se n for menor que isso, a função pode não ter efeito.

Declaração

A seguir está a declaração do cabeçalho da função std :: unordered_map :: reserve () std :: unordered_map.

C ++ 11

void reserve(size_type n);

Parâmetros

n - Nova capacidade do container.

Valor de retorno

Nenhum

Complexidade de tempo

Linear, isto é, O (n) no caso médio.

Quadrático, ou seja, O (n 2 ) no pior caso.

Exemplo

O exemplo a seguir mostra o uso da função 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

Initial bucket count = 11
Bucket count after reserve = 5