テーブル全体の操作

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

次の表は、このテンプレート・クラスのメンバーの詳細な情報を提供します。
メンバー 説明
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()

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

concurrent_hash_map& operator= ( concurrent_hash_map& source )

ソーステーブルとデスティネーション・テーブル (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

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