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

La description

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

Le facteur de charge est calculé comme suit -

load_factor = um.size() / um.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 la fonction std :: unordered_map :: max_load_factor () de l'en-tête 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_map :: max_load_factor ().

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_map<char, int> um;

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

   um.max_load_factor(2);

   cout << "max_load_factor after set operation = " << um.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