この記事は LL/ML Advent Calendar 19日目の記事です。 C++11 で追加された unordered 系のコンテナは、ハッシュを使って要素を管理するコンテナです。 そのハッシュを使ったアルゴリズムもいくつかありますが、C++11 では OpenHashing 方式を想定しているようです。 OpenHashing 方式は、同じバケットに対して複数の要素が入ってしまう場合、リンクリストなどでそれらの要素を繋いでやる方式です。 細かいことやその他の方式については SlideBoom closed down を見ましょう。 この記事では C++11 の unordered 系コンテナ特有の、バケットやリハッシュ関数について説明します。 バケット操作関数 バケットの数は bucket_count() で取得できます。また、n 番目のバケットに入っている要素数は bucket_s
