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

La description

La fonction C ++ std::unordered_multimap::max_load_factor() affecte un nouveau facteur de charge pour le conteneur unordered_multimap.

Le facteur de charge est calculé comme suit -

load_factor = umm.size() / umm.bucket_count();

La valeur par défaut de max_load_factor est 1.0

Le facteur de charge influence la probabilité de collision dans la table de hachage. Le conteneur utilise la valeur de max_load_factor comme seuil qui force une augmentation du nombre de buckets et provoque ainsi un rehash.

Déclaration

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

C ++ 11

void max_load_factor(float z);

Paramètres

z - Le nouveau facteur de charge maximal.

Valeur de retour

Aucun

Complexité temporelle

Constante ie O (1)

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: unordered_multimap :: max_load_factor ().

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_multimap<char, int> umm;

   cout << "Initial max_load_factor = " <<umm.max_load_factor()
        << endl;

   umm.max_load_factor(2);

   cout << "max_load_factor after set operation = "
        << umm.max_load_factor() << endl;

   return 0;
}

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

Initial max_load_factor = 1
max_load_factor after set operation = 2