Bibliothèque C ++ Unordered_multimap - fonction rehash ()

La description

La fonction C ++ std::unordered_multimap::rehash()définit le nombre de compartiments dans le conteneur sur n ou plus.

Si n est supérieur au nombre actuel de compartiments dans le conteneur, un rehash est forcé. Le nouveau nombre de compartiments peut être égal ou supérieur à n .

Si n est inférieur au nombre actuel de compartiments dans le conteneur, la fonction peut n'avoir aucun effet sur le nombre de compartiments et ne peut pas forcer un rehash.

Déclaration

Voici la déclaration de la fonction std :: unordered_multimap :: rehash () de l'en-tête std :: unordered_map ().

C ++ 11

void rehash(size_type n);

Paramètres

n - Nouveau nombre de seaux

Valeur de retour

Aucun

Complexité temporelle

Linéaire ie O (n) dans le cas moyen.

Quadratique c'est-à-dire O (n 2 ) dans le pire des cas.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

Initial bucket_count: 11
Current bucket_count: 23