Bibliothèque C ++ Unordered_set - max_load_factor

La description

Il est utilisé pour obtenir ou définir le facteur de charge maximum.

Déclaration

Voici la déclaration pour std :: unordered_set :: max_load_factor.

C ++ 11

float max_load_factor() const noexcept;
void max_load_factor ( float z );

Paramètres

z - C'est le nouveau facteur de charge maximal.

Valeur de retour

Il renvoie le facteur de charge actuel.

Des exceptions

Une exception est levée si un objet de comparaison d'éléments lève une exception.

Veuillez noter que les arguments non valides provoquent un comportement indéfini.

Complexité temporelle

temps constant.

Exemple

L'exemple suivant montre l'utilisation de std :: unordered_set :: max_load_factor.

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myset =
      {"sai", "Ram", "krishna", "prasad", "Bangalore", "india"};

   std::cout << "current max_load_factor: " << myset.max_load_factor() << std::endl;
   std::cout << "current size: " << myset.size() << std::endl;
   std::cout << "current bucket_count: " << myset.bucket_count() << std::endl;
   std::cout << "current load_factor: " << myset.load_factor() << std::endl;

   float z = myset.max_load_factor();
   myset.max_load_factor ( z / 2.0 );
   std::cout << "[max_load_factor halved]" << std::endl;

   std::cout << "new max_load_factor: " << myset.max_load_factor() << std::endl;
   std::cout << "new size: " << myset.size() << std::endl;
   std::cout << "new bucket_count: " << myset.bucket_count() << std::endl;
   std::cout << "new load_factor: " << myset.load_factor() << std::endl;

   return 0;
}

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

current max_load_factor: 1
current size: 6
current bucket_count: 7
current load_factor: 0.857143
[max_load_factor halved]
new max_load_factor: 0.5
new size: 6
new bucket_count: 17
new load_factor: 0.352941