GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM
  • C library:
  • <cassert> (assert.h)
  • <cctype> (ctype.h)
  • <cerrno> (errno.h)
  • <cfenv> (fenv.h)
  • <cfloat> (float.h)
  • <cinttypes> (inttypes.h)
  • <ciso646> (iso646.h)
  • <climits> (limits.h)
  • <clocale> (locale.h)

This view

  • Original page
  • New address

GeezerVison is showing cplusplus.com — std::unordered_map::load_factor

  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM

C++

  • Tutorials
  • Reference
  • Articles
  • Forum

Reference

  • C library:

    • <cassert> (assert.h)
    • <cctype> (ctype.h)
    • <cerrno> (errno.h)
    • C++11
      <cfenv> (fenv.h)
    • <cfloat> (float.h)
    • C++11
      <cinttypes> (inttypes.h)
    • <ciso646> (iso646.h)
    • <climits> (limits.h)
    • <clocale> (locale.h)
    • <cmath> (math.h)
    • <csetjmp> (setjmp.h)
    • <csignal> (signal.h)
    • <cstdarg> (stdarg.h)
    • C++11
      <cstdbool> (stdbool.h)
    • <cstddef> (stddef.h)
    • C++11
      <cstdint> (stdint.h)
    • <cstdio> (stdio.h)
    • <cstdlib> (stdlib.h)
    • <cstring> (string.h)
    • C++11
      <ctgmath> (tgmath.h)
    • <ctime> (time.h)
    • C++11
      <cuchar> (uchar.h)
    • <cwchar> (wchar.h)
    • <cwctype> (wctype.h)
  • Containers:

    • C++11
      <array>
    • <deque>
    • C++11
      <forward_list>
    • <list>
    • <map>
    • <queue>
    • <set>
    • <stack>
    • C++11
      <unordered_map>
    • C++11
      <unordered_set>
    • <vector>
  • Input/Output:

    • <fstream>
    • <iomanip>
    • <ios>
    • <iosfwd>
    • <iostream>
    • <istream>
    • <ostream>
    • <sstream>
    • <streambuf>
  • Multi-threading:

    • C++11
      <atomic>
    • C++11
      <condition_variable>
    • C++11
      <future>
    • C++11
      <mutex>
    • C++11
      <thread>
  • Other:

    • <algorithm>
    • <bitset>
    • C++11
      <chrono>
    • C++11
      <codecvt>
    • <complex>
    • <exception>
    • <functional>
    • C++11
      <initializer_list>
    • <iterator>
    • <limits>
    • <locale>
    • <memory>
    • <new>
    • <numeric>
    • C++11
      <random>
    • C++11
      <ratio>
    • C++11
      <regex>
    • <stdexcept>
    • <string>
    • C++11
      <system_error>
    • C++11
      <tuple>
    • C++11
      <type_traits>
    • C++11
      <typeindex>
    • <typeinfo>
    • <utility>
    • <valarray>

<unordered_map>

  • C++11
    unordered_map
  • C++11
    unordered_multimap

unordered_map

  • C++11
    unordered_map::~unordered_map
  • C++11
    unordered_map::unordered_map
  • member functions

    • C++11
      unordered_map::at
    • C++11
      unordered_map::begin
    • C++11
      unordered_map::bucket
    • C++11
      unordered_map::bucket_count
    • C++11
      unordered_map::bucket_size
    • C++11
      unordered_map::cbegin
    • C++11
      unordered_map::cend
    • C++11
      unordered_map::clear
    • C++11
      unordered_map::count
    • C++11
      unordered_map::emplace
    • C++11
      unordered_map::emplace_hint
    • C++11
      unordered_map::empty
    • C++11
      unordered_map::end
    • C++11
      unordered_map::equal_range
    • C++11
      unordered_map::erase
    • C++11
      unordered_map::find
    • C++11
      unordered_map::get_allocator
    • C++11
      unordered_map::hash_function
    • C++11
      unordered_map::insert
    • C++11
      unordered_map::key_eq
    • C++11
      unordered_map::load_factor
    • C++11
      unordered_map::max_bucket_count
    • C++11
      unordered_map::max_load_factor
    • C++11
      unordered_map::max_size
    • C++11
      unordered_map::operator[]
    • C++11
      unordered_map::operator=
    • C++11
      unordered_map::rehash
    • C++11
      unordered_map::reserve
    • C++11
      unordered_map::size
    • C++11
      unordered_map::swap
  • non-member overloads

    • C++11
      operators (unordered_map)
    • C++11
      swap (unordered_map)
  • Reference
  • <unordered_map>
  • unordered_map
  • load_factor
public member function
<unordered_map>

std::unordered_map::load_factor

float load_factor() const noexcept;
Return load factor
Returns the current load factor in the unordered_map 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.

Parameters

none

Return Value

The current load factor.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// unordered_map hash table stats
#include <iostream>
#include <unordered_map>

int main ()
{
  std::unordered_map<int,int> mymap;

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

  return 0;
}

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


Complexity

Constant.

Iterator validity

No changes.

See also

unordered_map::max_load_factor
Get or set maximum load factor (public member function)
unordered_map::bucket_size
Return bucket size (public member type)
unordered_map::bucket_count
Return number of buckets (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2026 - All rights reserved - v3.3.4s
Spotted an error? contact us
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.