Biblioteca C ++ Unordered_map - Função rehash ()

Descrição

A função C ++ std::unordered_map::rehash()Define o número de depósitos no contêiner para n ou mais.

Se n for maior que o número atual de baldes no contêiner, um novo hash é forçado. A nova contagem de intervalos pode ser igual ou maior que n.

Se n for menor que o número atual de baldes no contêiner, a função pode não ter efeito na contagem de baldes e não pode forçar um novo hash.

Declaração

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

C ++ 11

void rehash(size_type n);

Parâmetros

n - Novo número de baldes

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 :: 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;
}

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

Initial bucket_count: 11
Current bucket_count: 23