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

La description

La fonction C ++ std::unordered_multimap::reserve()définit le nombre de compartiments dans le conteneur sur le plus approprié pour contenir au moins n éléments.

Si n est supérieur au bucket_count () * max_load_factor () actuel, alors le nombre de bucket du conteneur est augmenté et un rehash est forcé et si n est inférieur à cela, la fonction peut n'avoir aucun effet.

Déclaration

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

C ++ 11

void reserve(size_type n);

Paramètres

n - Nouvelle capacité du conteneur.

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 :: reserve ().

#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.reserve(5);

   cout << "Bucket count after reserve = " << umm.bucket_count() << endl;

   return 0;
}

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

Initial bucket count = 11
Bucket count after reserve = 5