テーブル全体の操作

これらの操作はテーブル全体に影響します。同じテーブルでこれらの操作を同時に呼び出さないでください。

次の表は、このテンプレート・クラスのメンバーの詳細な情報を提供します。
メンバー 説明
concurrent_hash_map( const allocator_type& a = allocator_type() )

空のテーブルを構築します。

concurrent_hash_map( size_type n, const allocator_type& a = allocator_type() )

少なくとも n アイテムのバケットが割り当て済みの空のテーブルを構築します。

一般に、バケットでのスレッドの競合は、バケットの数に反比例します。メモリー消費量に問題がなく、P スレッドが concurrent_hash_map にアクセスする場合、n>=4P に設定します。

concurrent_hash_map( const concurrent_hash_map& table, const allocator_type& a = allocator_type() )

テーブルをコピーします。コピーするテーブルには、その上で同時に実行する const 操作が含まれます。

template<typename InputIterator> concurrent_hash_map( InputIterator first, InputIterator last, const allocator_type& a = allocator_type() )

半開区間 [first,last) のイテレーターの要素のコピーを含むテーブルを構築します。

concurrent_hash_map( std::initializer_list<value_type> il, const allocator_type &a = allocator_type() )

C++11 仕様。concurrent_hash_map(il.begin(), il.end(), a) と等価です。

concurrent_hash_map(concurrent_hash_map&& source)

C++11 仕様。source テーブルのコンテンツを移動することにより新しいテーブルを構築します。source は無指定の状態のままですが、安全に破棄することができます。

concurrent_hash_map(concurrent_hash_map&& source, const allocator_type& a)

C++11 仕様。指定されたアロケーターを使って source テーブルのコンテンツを移動することにより新しいテーブルを構築します。source は無指定の状態のままですが、安全に破棄することができます。

~concurrent_hash_map()

clear() を呼び出します。このメソッドを、同じ concurrent_hash_map のほかのメソッドと同時に実行することは安全ではありません。

concurrent_hash_map& operator=( concurrent_hash_map& source )

ソーステーブルとデスティネーション・テーブル (this) が別の場合、デスティネーション・テーブルを消去して、ソーステーブルからデスティネーション・テーブルにすべてのキー/値ペアをコピーします。その他の場合は、何もしません。

戻り値: 計算後の *this への参照。

concurrent_hash_map& operator=(concurrent_hash_map&& source);

C++11 仕様。source テーブルから *this にデータを移動します。source は無指定の状態のままですが、安全に破棄することができます。

戻り値: 計算後の *this への参照。

concurrent_hash_map& operator=( std::initializer_list<value_type> il )

C++11 仕様。*this を代入して il のデータを含めます。

戻り値: 計算後の *this への参照。

void swap( concurrent_hash_map& table )

thistable のコンテンツおよび割り当てをスワップします。

void rehash( size_type n = 0 )

テーブルは内部でバケットに分割されます。rehash メソッドは、将来のルックアップのパフォーマンスを向上するようにこれらの内部バケットを認識します。n>0n が現在のバケット数よりも大きい場合、内部バケットの数を n に増やします。

注意

現在の実装は、バケット数を減らすことはありません。将来の実装では、n が現在のバケット数よりも小さい場合、バケットの数を減らせるようになるかもしれません。

バケット数に対するアイテム数の比率は、テーブルで使用する時間と空間に影響します。比率が高いと、空間は抑えることができますが、時間がかかります。比率が低いとその逆になります。デフォルトの比率は、平均でバケットごとに 0.5 ~ 1 アイテムです。

void clear()

テーブルからすべてのキー/値ペアを消去します。キーのハッシュまたは比較を行いません。

TBB_USE_PERFORMANCE_WARNINGS が非ゼロで、ハッシュのランダム性がパフォーマンスに大幅に影響するほど低い場合、パフォーマンスの警告を出力します。

allocator_type get_allocator() const

戻り値: テーブルの構築に使用されるアロケーターのコピー。