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