Unordered_map ::max_load_factor en C++ STL es una función integrada que se usa para obtener y establecer el factor de carga máximo en unordered_map. El factor de carga es la relación entre el número de elementos en el contenedor y el número de cubos. Por defecto, el factor max_load de unordered_map es 1.0.
Sintaxis: Hay dos tipos de funciones para max_load_factor.
- flotar max_load_factor()
- void max_load_factor(float new_size)
Tipo de devolución: solo la primera versión devuelve max_load_factor.
Parámetro: solo la segunda versión acepta el nuevo tamaño.
Nota:
- La primera versión devuelve el factor de carga máximo.
- La segunda versión establece un nuevo factor de carga.
Ejemplo 1
// C++ program to illustrate the // unordered_map::max_bucket_count function #include <bits/stdc++.h> using namespace std; int main() { // declaration of unordered_map unordered_map<char, int> sample; // insert elements sample.insert({ 'a', 10 }); sample.insert({ 'b', 10 }); sample.insert({ 'c', 10 }); sample.insert({ 'd', 10 }); sample.insert({ 'e', 10 }); sample.insert({ 'f', 10 }); cout << "Current size is : " << sample.size() << endl; cout << "Current load factor is : " << sample.load_factor() << endl; cout << "Current Max load factor is " << sample.max_load_factor() << endl; // Changing max load factor sample.max_load_factor(5.0 / 2.0); cout << "Current size is : " << sample.size() << endl; cout << "Current load factor is : " << sample.load_factor() << endl; cout << "Current Max load factor is " << sample.max_load_factor() << endl; return 0; }
Producción:
Current size is : 6 Current load factor is : 0.857143 Current Max load factor is 1 Current size is : 6 Current load factor is : 0.857143 Current Max load factor is 2.5
Ejemplo 2
// C++ program to illustrate the // unordered_map::max_bucket_count function #include <bits/stdc++.h> using namespace std; int main() { // declaration of unordered_map unordered_map<int, int> sample; // insert elements sample.insert({ 1, 10 }); sample.insert({ 2, 10 }); sample.insert({ 3, 10 }); sample.insert({ 4, 10 }); cout << " Current size is : " << sample.size() << endl; cout << " Current load factor is : " << sample.load_factor() << endl; cout << " Current Max load factor is " << sample.max_load_factor() << endl; // Changing max load factor sample.max_load_factor(5.0 / 2.0); cout << " Current size is : " << sample.size() << endl; cout << " Current load factor is : " << sample.load_factor() << endl; cout << " Current Max load factor is " << sample.max_load_factor() << endl; return 0; }
Producción:
Current size is : 4 Current load factor is : 0.571429 Current Max load factor is 1 Current size is : 4 Current load factor is : 0.571429 Current Max load factor is 2.5
Complejidad : O(1).
Publicación traducida automáticamente
Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA