Biblioteca C ++ Unordered_set - max_load_factor

Descrição

É usado para obter ou definir o fator de carga máximo.

Declaração

A seguir está a declaração para std :: unordered_set :: max_load_factor.

C ++ 11

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

Parâmetros

z - Este é o novo fator de carga máxima.

Valor de retorno

Ele retorna o fator de carga atual.

Exceções

A exceção é lançada se qualquer objeto de comparação de elemento lançar uma exceção.

Observe que os argumentos inválidos causam um comportamento indefinido.

Complexidade de tempo

tempo constante.

Exemplo

O exemplo a seguir mostra o 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte 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