これらの操作はテーブル全体に影響します。同じテーブルでこれらの操作を同時に呼び出さないでください。
メンバー | 説明 |
---|---|
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 ) |
this と table のコンテンツおよび割り当てをスワップします。 |
void rehash( size_type n = 0 ) |
テーブルは内部でバケットに分割されます。rehash メソッドは、将来のルックアップのパフォーマンスを向上するようにこれらの内部バケットを認識します。n>0 で n が現在のバケット数よりも大きい場合、内部バケットの数を n に増やします。 注意現在の実装は、バケット数を減らすことはありません。将来の実装では、n が現在のバケット数よりも小さい場合、バケットの数を減らせるようになるかもしれません。 注バケット数に対するアイテム数の比率は、テーブルで使用する時間と空間に影響します。比率が高いと、空間は抑えることができますが、時間がかかります。比率が低いとその逆になります。デフォルトの比率は、平均でバケットごとに 0.5 ~ 1 アイテムです。 |
void clear() |
テーブルからすべてのキー/値ペアを消去します。キーのハッシュまたは比較を行いません。 TBB_USE_PERFORMANCE_WARNINGS が非ゼロで、ハッシュのランダム性がパフォーマンスに大幅に影響するほど低い場合、パフォーマンスの警告を出力します。 |
allocator_type get_allocator() const |
戻り値: テーブルの構築に使用されるアロケーターのコピー。 |