unordered_set::load_factor - C++ Reference

2929 ワード

unordered_set::load_factor - C++ Reference
public member function
std::unordered_set::load_factor
float load_factor() const noexcept;

Return load factor
Returns the current load factor in the
unordered_set container.
The load factor is the ratio between the number of elements in the container (its
size ) and the number of buckets (
bucket_count ):
load_factor = size / bucket_count
The load factor influences the probability of collision in the hash table (i.e., the probability of two elements being located in the same bucket). The container automatically increases the number of buckets to keep the load factor below a specific threshold (its
max_load_factor ), causing a
rehash each time an expansion is needed.
To retrieve or change this threshold, use member function
max_load_factor .
Parametersnone
Return ValueThe current load factor.
Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// unordered_set hash table stats
#include <iostream>
#include <unordered_set>

int main ()
{
  std::unordered_set<int> myset;

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

  return 0;
}

Possible output:
size = 0
bucket_count = 11
load_factor = 0
max_load_factor = 1