Descrição
A função C ++ std::unordered_multimap::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 nenhum 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 de função std :: unordered_multimap :: 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_multimap :: rehash ().
#include <iostream>
#include <unordered_map>
using namespace std;
int main (void) {
unordered_multimap<char, int> umm;
cout << "Initial bucket_count: " << umm.bucket_count() << endl;
umm.rehash(20);
cout << "Current bucket_count: " << umm.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