|
| HashMap () |
|
| HashMap (const HashTraits &hashTraits, MemManager memManager=MemManager()) |
|
template<typename Pair = std::pair<Key, Value>> |
| HashMap (std::initializer_list< Pair > pairs) |
|
template<typename Pair = std::pair<Key, Value>> |
| HashMap (std::initializer_list< Pair > pairs, const HashTraits &hashTraits, MemManager memManager=MemManager()) |
|
| HashMap (HashMap &&hashMap) noexcept |
|
| HashMap (const HashMap &hashMap) |
|
| HashMap (const HashMap &hashMap, MemManager memManager) |
|
| ~HashMap ()=default |
|
HashMap & | operator= (HashMap &&hashMap) noexcept |
|
HashMap & | operator= (const HashMap &hashMap) |
|
void | Swap (HashMap &hashMap) noexcept |
|
ConstIterator | GetBegin () const noexcept |
|
Iterator | GetBegin () noexcept |
|
ConstIterator | GetEnd () const noexcept |
|
Iterator | GetEnd () noexcept |
|
const HashTraits & | GetHashTraits () const noexcept |
|
const MemManager & | GetMemManager () const noexcept |
|
MemManager & | GetMemManager () noexcept |
|
size_t | GetCount () const noexcept |
|
bool | IsEmpty () const noexcept |
|
void | Clear (bool shrink=true) noexcept |
|
size_t | GetCapacity () const noexcept |
|
void | Reserve (size_t capacity) |
|
MOMO_FORCEINLINE ConstPosition | Find (const Key &key) const |
|
MOMO_FORCEINLINE Position | Find (const Key &key) |
|
template<typename KeyArg > |
MOMO_FORCEINLINE internal::EnableIf< IsValidKeyArg< KeyArg >::value, ConstPosition > | Find (const KeyArg &key) const |
|
template<typename KeyArg > |
MOMO_FORCEINLINE internal::EnableIf< IsValidKeyArg< KeyArg >::value, Position > | Find (const KeyArg &key) |
|
MOMO_FORCEINLINE bool | ContainsKey (const Key &key) const |
|
template<typename KeyArg > |
MOMO_FORCEINLINE internal::EnableIf< IsValidKeyArg< KeyArg >::value, bool > | ContainsKey (const KeyArg &key) const |
|
template<typename ValueCreator > |
InsertResult | InsertCrt (Key &&key, ValueCreator &&valueCreator) |
|
template<typename... ValueArgs> |
InsertResult | InsertVar (Key &&key, ValueArgs &&... valueArgs) |
|
InsertResult | Insert (Key &&key, Value &&value) |
|
InsertResult | Insert (Key &&key, const Value &value) |
|
template<typename ValueCreator > |
InsertResult | InsertCrt (const Key &key, ValueCreator &&valueCreator) |
|
template<typename... ValueArgs> |
InsertResult | InsertVar (const Key &key, ValueArgs &&... valueArgs) |
|
InsertResult | Insert (const Key &key, Value &&value) |
|
InsertResult | Insert (const Key &key, const Value &value) |
|
InsertResult | Insert (ExtractedPair &&extPair) |
|
template<typename ArgIterator , typename = decltype(internal::MapPairConverter<ArgIterator>::Convert(*std::declval<ArgIterator>()))> |
size_t | Insert (ArgIterator begin, ArgIterator end) |
|
template<typename Pair = std::pair<Key, Value>> |
size_t | Insert (std::initializer_list< Pair > pairs) |
|
template<typename PairCreator , bool extraCheck = true> |
Position | AddCrt (ConstPosition pos, PairCreator &&pairCreator) |
|
template<typename ValueCreator , bool extraCheck = true> |
Position | AddCrt (ConstPosition pos, Key &&key, ValueCreator &&valueCreator) |
|
template<typename... ValueArgs> |
Position | AddVar (ConstPosition pos, Key &&key, ValueArgs &&... valueArgs) |
|
Position | Add (ConstPosition pos, Key &&key, Value &&value) |
|
Position | Add (ConstPosition pos, Key &&key, const Value &value) |
|
template<typename ValueCreator , bool extraCheck = true> |
Position | AddCrt (ConstPosition pos, const Key &key, ValueCreator &&valueCreator) |
|
template<typename... ValueArgs> |
Position | AddVar (ConstPosition pos, const Key &key, ValueArgs &&... valueArgs) |
|
Position | Add (ConstPosition pos, const Key &key, Value &&value) |
|
Position | Add (ConstPosition pos, const Key &key, const Value &value) |
|
Position | Add (ConstPosition pos, ExtractedPair &&extPair) |
|
MOMO_FORCEINLINE ValueReferenceRKey | operator[] (Key &&key) |
|
MOMO_FORCEINLINE ValueReferenceCKey | operator[] (const Key &key) |
|
Iterator | Remove (ConstIterator iter) |
|
Iterator | Remove (Iterator iter) |
|
void | Remove (ConstPosition pos) |
|
void | Remove (Position pos) |
|
Iterator | Remove (ConstIterator iter, ExtractedPair &extPair) |
|
bool | Remove (const Key &key) |
|
template<typename PairFilter > |
internal::EnableIf< internal::IsInvocable< const PairFilter &, bool, const Key &, const Value & >::value, size_t > | Remove (const PairFilter &pairFilter) |
|
ExtractedPair | Extract (ConstPosition pos) |
|
template<typename KeyArg , bool extraCheck = true> |
void | ResetKey (ConstPosition pos, KeyArg &&keyArg) |
|
template<typename RMap > |
void | MergeFrom (RMap &&srcMap) |
|
template<typename Map > |
void | MergeTo (Map &dstMap) |
|
size_t | GetBucketCount () const noexcept |
|
ConstBucketBounds | GetBucketBounds (size_t bucketIndex) const |
|
BucketBounds | GetBucketBounds (size_t bucketIndex) |
|
size_t | GetBucketIndex (const Key &key) const |
|
ConstPosition | MakePosition (size_t hashCode) const noexcept |
|
Iterator | MakeMutableIterator (ConstIterator iter) |
|
void | CheckIterator (ConstIterator iter, bool allowEmpty=true) const |
|
template<typename TKey, typename TValue, typename THashTraits = HashTraits<TKey>, typename TMemManager = MemManagerDefault, typename TKeyValueTraits = HashMapKeyValueTraits<TKey, TValue, TMemManager>, typename TSettings = HashMapSettings>
class momo::HashMap< TKey, TValue, THashTraits, TMemManager, TKeyValueTraits, TSettings >
All HashMap
functions and constructors have strong exception safety, but not the following cases:
- Functions
Insert
receiving many items have basic exception safety.
- Function
Remove
receiving predicate has basic exception safety.
- Functions
MergeFrom
and MergeTo
have basic exception safety.
- In case default
KeyValueTraits
: if insert/add function receiving argument Key&& key
throws exception, this argument may be changed.
- In case default
KeyValueTraits
: if function Remove
throws exception and ObjectManager<Key, MemManager>::isNothrowAnywayAssignable
is false and ObjectManager<Value, MemManager>::isNothrowAnywayAssignable
is false, removing value may be changed.