同時処理が安全な修飾子
このセクションのすべてのメソッドは、互いに同時実行してメソッドを検索できます。
値を挿入
bool insert( const_accessor& result, const key_type& key ); bool insert( accessor& result, const key_type& key );アクセサー
result
が空でない場合result
を解放し、key, mapped_type()
から構築された値をコンテナーに挿入しようとします。挿入された要素への、またはコンテナーに既に存在する等しいキーを持つ要素へのアクセスを可能にする
result
を設定します。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のEmplaceConstructible
の要件を満たしている必要があります。
mapped_type
タイプは、[defaultconstructible] ISO C++ 標準のDefaultConstructible
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
template <typename K> bool insert( const_accessor& result, const K& key ); template <typename K> bool insert( accessor& result, const K& key );アクセサー
result
が空でない場合result
を解放し、key, mapped_type()
から構築された値をコンテナーに挿入しようとします。挿入された要素、またはコンテナーに既に存在する
key
値と同等のキーを持つ要素へのアクセスを可能にするresult
を設定します。このオーバーロードは、次の場合にのみオーバーロードの解決に参加します。
修飾 ID
hash_compare_type::is_transparent
が有効であり、タイプを示します。
std::is_constructible<key_type, const K&>::value
がtrue
です。要件:
mapped_type
タイプは、[defaultconstructible] ISO C++ 標準のDefaultConstructible
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
bool insert( const_accessor& result, const value_type& value ); bool insert( accessor& result, const value_type& value );アクセサー
result
が空でない場合result
を解放し、value
をコンテナーに挿入しようとします。挿入された要素への、またはコンテナーに既に存在する等しいキーを持つ要素へのアクセスを可能にする
result
を設定します。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のCopyInsertable
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
bool insert( const value_type& value );コンテナーに
value
の挿入を試みます。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のCopyInsertable
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
bool insert( const_accessor& result, value_type&& value ); bool insert( accessor& result, value_type&& value );アクセサー
result
が空でない場合result
を解放し、ムーブ・セマンティクスを使用してvalue
値をコンテナーに挿入しようとします。挿入された要素への、またはコンテナーに既に存在する等しいキーを持つ要素へのアクセスを可能にする
result
を設定します。
value
は有効のままですが、未指定の状態となります。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のMoveInsertable
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
bool insert( value_type&& value );ムーブ・セマンティクスを使用してコンテナーに
value
の挿入を試みます。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のMoveInsertable
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
要素のシーケンスを挿入
template <typename InputIterator> void insert( InputIterator first, InputIterator last );半開区間l
[first, last)
からすべての項目をコンテナーに挿入しようとします。半開区間
[first, last)
に同じキーを持つ複数の要素が含まれている場合、どの要素が挿入されるかは未指定です。要件:
InputIterator
タイプは、ISO C++ 標準の[input.iterators]
セクションの InputIterator 要件を満たしている必要があります。
void insert( std::initializer_list<value_type> init );
insert(init.begin(), init.end())
と等価です。
要素の配置
template <typename... Args> bool emplace( const_accessor& result, Args&&... args ); template <typename...Args> bool emplace( accessor& result, Args&&... args );アクセサー
result
が空でない場合result
を解放し、args
から構築された要素をインプレースでコンテナーに挿入しようとします。挿入された要素への、またはコンテナーに既に存在する等しいキーを持つ要素へのアクセスを可能にする
result
を設定します。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のEmplaceConstructible
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
template <typename... Args> bool emplace( Args&&... args );
args
からインプレースで構築された要素をコンテナーに挿入しようとします。要件:
value_type
タイプは、[container.requirements] ISO C++ 標準のEmplaceConstructible
の要件を満たしている必要があります。戻り値: 要素が挿入されていれば
true
、それ以外はfalse
を返します。
要素を消去
bool erase( const key_type& key );要素のキーと同じ
key
が存在する場合、それをコンテナーから削除します。戻り値: 要素が削除されていれば
true
、それ以外はfalse
を返します。
template <typename K> bool erase( const K& key );要素のキーと同じ
key
が存在する場合、それをコンテナーから削除します。このオーバーロードは、修飾された ID
hash_compare_type::is_transparent
が有効で、タイプを示している場合にのみ、オーバーロードの解決に参加します。戻り値: 要素が削除されていれば
true
、それ以外はfalse
を返します。
bool erase( const_accessor& item_accessor ); bool erase( accessor& item_accessor );
item_accessor
が所有する要素をコンテナーから削除します。要件:
item_accessor
は、空であってはなりません。戻り値: 現在のスレッドによって要素が削除された場合は
true
、別のスレッドで削除された場合はfalse
を返します。