Biblioteca de C ++ Unordered_set - max_load_factor

Descripción

Se utiliza para obtener o establecer el factor de carga máximo.

Declaración

A continuación se muestra la declaración de std :: unordered_set :: max_load_factor.

C ++ 11

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

Parámetros

z - Este es el nuevo factor de carga máximo.

Valor devuelto

Devuelve el factor de carga actual.

Excepciones

Se lanza una excepción si cualquier objeto de comparación de elementos produce una excepción.

Tenga en cuenta que los argumentos no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

tiempo constante.

Ejemplo

El siguiente ejemplo muestra el uso 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

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