最終更新日時:
が更新

履歴 編集

function
<unordered_map>

std::unordered_multimap::load_factor(C++11)

float load_factor() const noexcept;

概要

現在の負荷率(バケットあたりの要素数の平均)を取得する。

戻り値

現在の負荷率 :size / bucket_count

例外

投げない。

計算量

定数時間

#include <iostream>
#include <unordered_map>

int main()
{
  std::unordered_multimap<int,int> m;

  m.emplace( 1, 1 );
  m.emplace( 1, 1 );
  m.emplace( 2, 2 );
  m.emplace( 3, 3 );

  std::cout << "current max_load_factor: " << m.max_load_factor() << std::endl;
  std::cout << "current size: " << m.size() << std::endl;
  std::cout << "current bucket_count: " << m.bucket_count() << std::endl;
  std::cout << "current load_factor: " << m.load_factor() << std::endl;       // (size / bucket_count)
  std::cout << std::endl;

  return 0;
}

出力例 (MSVC-11.0)

current max_load_factor: 1
current size: 4
current bucket_count: 8
current load_factor: 0.5

検証

load_factor = size / bucket_count を満たしている。

バージョン

言語

  • C++11

処理系

参照

名前 説明
emplace コンテナ内への要素の直接構築
size 要素数の取得
bucket_count バケット数の取得
max_load_factor 負荷率の最大値を取得、設定