accessor と const_accessor
メンバークラス concurrent_hash_map::accessor
および concurrent_hash_map::const_accessor
は、アクセサーと呼ばれます。アクセサーは、複数のスレッドが共有の concurrent_hash_map
のキーと値のペアへの同時アクセスを許可します。アクセサーが項目を指していない場合、アクセサーは空 (empty) であると呼ばれます。
accessor
メンバークラス
メンバークラス concurrent_hash_map::accessor
は、concurrent_hash_map
のキーと値のペアへの読み取り/書き込みアクセスを提供します。
namespace oneapi {
namespace tbb {
template <typename Key, typename T, typename HashCompare, typename Allocator>
class concurrent_hash_map<Key, T, HashCompare, Allocator>::accessor {
using value_type = std::pair<const Key, T>;
accessor();
~accessor();
bool empty() const;
value_type& operator*() const;
value_type* operator->() const;
void release();
}; // class accessor
} // namespace tbb
} // namespace oneapi
const_accessor
メンバークラス
メンバークラス concurrent_hash_map::const_accessor
は、concurrent_hash_map
のキーと値のペアの読み取り専用アクセスを提供します。
namespace oneapi {
namespace tbb {
template <typename Key, typename T, typename HashCompare, typename Allocator>
class concurrent_hash_map<Key, T, HashCompare, Allocator>::const_accessor {
using value_type = const std::pair<const Key, T>;
const_accessor();
~const_accessor();
bool empty() const;
value_type& operator*() const;
value_type* operator->() const;
void release();
}; // class const_accessor
} // namespace tbb
} // namespace oneapi
メンバー関数
構築と破棄
accessor(); const_accessor();空のアクセサーを生成します。
~accessor(); ~const_accessor();アクセサーを破棄します。
*this
が空でない場合、要素の所有権を解放します。
空
bool empty() const;戻り値: accessor が空の場合は
true
、それ以外はfalse
を返します。
キーと値ペアのアクセス
value_type& operator*() const;戻り値: アクセサーが指すキーと値のペアへの参照。
アクセサーが空の場合の動作は未定義です。
value_type* operator->() const;戻り値: アクセサーが指すキーと値のペアへのポインター。
アクセサーが空の場合の動作は未定義です。
解放
void release();
*this
が空でない場合、要素の所有権を解放します。*this
は空になります。