momo  3.9
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > Class Template Reference

momo::stdish::unordered_multimap is similar to std::unordered_multimap, but much more efficient in memory usage. The implementation is based on hash table with buckets in the form of small arrays. More...

#include <unordered_multimap.h>

Public Types

typedef TKey key_type
 
typedef TMapped mapped_type
 
typedef THashFunc hasher
 
typedef TEqualFunc key_equal
 
typedef TAllocator allocator_type
 
typedef HashMultiMap nested_container_type
 
typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef std::pair< const key_type, mapped_typevalue_type
 
typedef momo::internal::HashDerivedIterator< typename HashMultiMap::Iterator, momo::internal::MapReferenceStditerator
 
typedef iterator::ConstIterator const_iterator
 
typedef iterator::Reference reference
 
typedef const_iterator::Reference const_reference
 
typedef iterator::Pointer pointer
 
typedef const_iterator::Pointer const_pointer
 

Public Member Functions

 unordered_multimap ()
 
 unordered_multimap (const allocator_type &alloc)
 
 unordered_multimap (size_type bucketCount, const allocator_type &alloc=allocator_type())
 
 unordered_multimap (size_type bucketCount, const hasher &hashFunc, const allocator_type &alloc=allocator_type())
 
 unordered_multimap (size_type bucketCount, const hasher &hashFunc, const key_equal &equalFunc, const allocator_type &alloc=allocator_type())
 
template<typename Iterator >
 unordered_multimap (Iterator first, Iterator last)
 
template<typename Iterator >
 unordered_multimap (Iterator first, Iterator last, size_type bucketCount, const allocator_type &alloc=allocator_type())
 
template<typename Iterator >
 unordered_multimap (Iterator first, Iterator last, size_type bucketCount, const hasher &hashFunc, const allocator_type &alloc=allocator_type())
 
template<typename Iterator >
 unordered_multimap (Iterator first, Iterator last, size_type bucketCount, const hasher &hashFunc, const key_equal &equalFunc, const allocator_type &alloc=allocator_type())
 
 unordered_multimap (std::initializer_list< value_type > values)
 
 unordered_multimap (std::initializer_list< value_type > values, size_type bucketCount, const allocator_type &alloc=allocator_type())
 
 unordered_multimap (std::initializer_list< value_type > values, size_type bucketCount, const hasher &hashFunc, const allocator_type &alloc=allocator_type())
 
 unordered_multimap (std::initializer_list< value_type > values, size_type bucketCount, const hasher &hashFunc, const key_equal &equalFunc, const allocator_type &alloc=allocator_type())
 
 unordered_multimap (unordered_multimap &&right) noexcept
 
 unordered_multimap (unordered_multimap &&right, const momo::internal::Identity< allocator_type > &alloc) noexcept(std::is_empty< allocator_type >::value)
 
 unordered_multimap (const unordered_multimap &right)
 
 unordered_multimap (const unordered_multimap &right, const momo::internal::Identity< allocator_type > &alloc)
 
 ~unordered_multimap ()=default
 
unordered_multimapoperator= (unordered_multimap &&right) noexcept(std::is_empty< allocator_type >::value||std::allocator_traits< allocator_type >::propagate_on_container_move_assignment::value)
 
unordered_multimapoperator= (const unordered_multimap &right)
 
unordered_multimapoperator= (std::initializer_list< value_type > values)
 
void swap (unordered_multimap &right) noexcept
 
const nested_container_typeget_nested_container () const noexcept
 
nested_container_typeget_nested_container () noexcept
 
const_iterator begin () const noexcept
 
iterator begin () noexcept
 
const_iterator end () const noexcept
 
iterator end () noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
hasher hash_function () const
 
key_equal key_eq () const
 
allocator_type get_allocator () const noexcept
 
size_type max_size () const noexcept
 
size_type size () const noexcept
 
MOMO_NODISCARD bool empty () const noexcept
 
void clear () noexcept
 
MOMO_FORCEINLINE const_iterator find (const key_type &key) const
 
MOMO_FORCEINLINE iterator find (const key_type &key)
 
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf< IsValidKeyArg< KeyArg >::value, const_iteratorfind (const KeyArg &key) const
 
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf< IsValidKeyArg< KeyArg >::value, iteratorfind (const KeyArg &key)
 
MOMO_FORCEINLINE size_type count (const key_type &key) const
 
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf< IsValidKeyArg< KeyArg >::value, size_typecount (const KeyArg &key) const
 
MOMO_FORCEINLINE bool contains (const key_type &key) const
 
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf< IsValidKeyArg< KeyArg >::value, bool > contains (const KeyArg &key) const
 
MOMO_FORCEINLINE std::pair< const_iterator, const_iteratorequal_range (const key_type &key) const
 
MOMO_FORCEINLINE std::pair< iterator, iteratorequal_range (const key_type &key)
 
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf< IsValidKeyArg< KeyArg >::value, std::pair< const_iterator, const_iterator > > equal_range (const KeyArg &key) const
 
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf< IsValidKeyArg< KeyArg >::value, std::pair< iterator, iterator > > equal_range (const KeyArg &key)
 
iterator insert (std::pair< key_type, mapped_type > &&value)
 
iterator insert (const_iterator, std::pair< key_type, mapped_type > &&value)
 
template<typename First , typename Second >
momo::internal::EnableIf< std::is_constructible< key_type, const First & >::value &&std::is_constructible< mapped_type, const Second & >::value, iteratorinsert (const std::pair< First, Second > &value)
 
template<typename First , typename Second >
momo::internal::EnableIf< std::is_constructible< key_type, const First & >::value &&std::is_constructible< mapped_type, const Second & >::value, iteratorinsert (const_iterator, const std::pair< First, Second > &value)
 
template<typename First , typename Second >
momo::internal::EnableIf< std::is_constructible< key_type, First && >::value &&std::is_constructible< mapped_type, Second && >::value, iteratorinsert (std::pair< First, Second > &&value)
 
template<typename First , typename Second >
momo::internal::EnableIf< std::is_constructible< key_type, First && >::value &&std::is_constructible< mapped_type, Second && >::value, iteratorinsert (const_iterator, std::pair< First, Second > &&value)
 
template<typename Iterator >
void insert (Iterator first, Iterator last)
 
void insert (std::initializer_list< value_type > values)
 
iterator emplace ()
 
iterator emplace_hint (const_iterator)
 
template<typename ValueArg >
iterator emplace (ValueArg &&valueArg)
 
template<typename ValueArg >
iterator emplace_hint (const_iterator, ValueArg &&valueArg)
 
template<typename KeyArg , typename MappedArg >
iterator emplace (KeyArg &&keyArg, MappedArg &&mappedArg)
 
template<typename KeyArg , typename MappedArg >
iterator emplace_hint (const_iterator, KeyArg &&keyArg, MappedArg &&mappedArg)
 
template<typename... KeyArgs, typename... MappedArgs>
iterator emplace (std::piecewise_construct_t, std::tuple< KeyArgs... > keyArgs, std::tuple< MappedArgs... > mappedArgs)
 
template<typename... KeyArgs, typename... MappedArgs>
iterator emplace_hint (const_iterator, std::piecewise_construct_t, std::tuple< KeyArgs... > keyArgs, std::tuple< MappedArgs... > mappedArgs)
 
iterator erase (const_iterator where)
 
iterator erase (iterator where)
 
iterator erase (const_iterator first, const_iterator last)
 
size_type erase (const key_type &key)
 
bool operator== (const unordered_multimap &right) const
 
bool operator!= (const unordered_multimap &right) const
 

Friends

void swap (unordered_multimap &left, unordered_multimap &right) noexcept
 
template<typename ValueFilter >
size_type erase_if (unordered_multimap &cont, const ValueFilter &valueFilter)
 

Detailed Description

template<typename TKey, typename TMapped, typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
class momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >

momo::stdish::unordered_multimap is similar to std::unordered_multimap, but much more efficient in memory usage. The implementation is based on hash table with buckets in the form of small arrays.

Deviations from the std::unordered_multimap:

  1. Each of duplicate keys stored only once.
  2. max_load_factor, rehash, reserve, load_factor and all the functions, associated with buckets or nodes, are not implemented.
  3. Container items must be movable (preferably without exceptions) or copyable, similar to items of std::vector.
  4. After each addition or removal of the item all iterators and references to items become invalid and should not be used.
  5. Type reference is not the same as value_type&, so for (auto& p : map) is illegal, but for (auto p : map) or for (const auto& p : map) or for (auto&& p : map) is allowed.
  6. Functions clear, begin, cbegin and iterator increment take O(bucket_count) time in worst case.
  7. Functions erase can throw exceptions thrown by key_type and mapped_type move assignment operators.

It is allowed to pass to functions insert and emplace references to items within the container. But in case of the function insert, receiving pair of iterators, it's not allowed to pass iterators pointing to the items within the container.

Member Typedef Documentation

◆ allocator_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef TAllocator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::allocator_type

◆ const_iterator

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef iterator::ConstIterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::const_iterator

◆ const_pointer

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef const_iterator::Pointer momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::const_pointer

◆ const_reference

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef const_iterator::Reference momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::const_reference

◆ difference_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef ptrdiff_t momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::difference_type

◆ hasher

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef THashFunc momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::hasher

◆ iterator

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef momo::internal::HashDerivedIterator<typename HashMultiMap::Iterator, momo::internal::MapReferenceStd> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::iterator

◆ key_equal

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef TEqualFunc momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::key_equal

◆ key_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef TKey momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::key_type

◆ mapped_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef TMapped momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::mapped_type

◆ nested_container_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef HashMultiMap momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::nested_container_type

◆ pointer

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef iterator::Pointer momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::pointer

◆ reference

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef iterator::Reference momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::reference

◆ size_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef size_t momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::size_type

◆ value_type

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
typedef std::pair<const key_type, mapped_type> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::value_type

Constructor & Destructor Documentation

◆ unordered_multimap() [1/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( )
inline

◆ unordered_multimap() [2/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( const allocator_type alloc)
inlineexplicit

◆ unordered_multimap() [3/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( size_type  bucketCount,
const allocator_type alloc = allocator_type() 
)
inlineexplicit

◆ unordered_multimap() [4/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( size_type  bucketCount,
const hasher hashFunc,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [5/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( size_type  bucketCount,
const hasher hashFunc,
const key_equal equalFunc,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [6/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename Iterator >
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( Iterator  first,
Iterator  last 
)
inline

◆ unordered_multimap() [7/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename Iterator >
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( Iterator  first,
Iterator  last,
size_type  bucketCount,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [8/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename Iterator >
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( Iterator  first,
Iterator  last,
size_type  bucketCount,
const hasher hashFunc,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [9/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename Iterator >
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( Iterator  first,
Iterator  last,
size_type  bucketCount,
const hasher hashFunc,
const key_equal equalFunc,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [10/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( std::initializer_list< value_type values)
inline

◆ unordered_multimap() [11/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( std::initializer_list< value_type values,
size_type  bucketCount,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [12/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( std::initializer_list< value_type values,
size_type  bucketCount,
const hasher hashFunc,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [13/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( std::initializer_list< value_type values,
size_type  bucketCount,
const hasher hashFunc,
const key_equal equalFunc,
const allocator_type alloc = allocator_type() 
)
inline

◆ unordered_multimap() [14/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &&  right)
inlinenoexcept

◆ unordered_multimap() [15/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &&  right,
const momo::internal::Identity< allocator_type > &  alloc 
)
inlinenoexcept

◆ unordered_multimap() [16/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( const unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right)
inline

◆ unordered_multimap() [17/17]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::unordered_multimap ( const unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right,
const momo::internal::Identity< allocator_type > &  alloc 
)
inline

◆ ~unordered_multimap()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::~unordered_multimap ( )
default

Member Function Documentation

◆ begin() [1/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
const_iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::begin ( ) const
inlinenoexcept

◆ begin() [2/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::begin ( )
inlinenoexcept

◆ cbegin()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
const_iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::cbegin ( ) const
inlinenoexcept

◆ cend()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
const_iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::cend ( ) const
inlinenoexcept

◆ clear()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
void momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::clear ( )
inlinenoexcept

◆ contains() [1/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_FORCEINLINE bool momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::contains ( const key_type key) const
inline

◆ contains() [2/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf<IsValidKeyArg<KeyArg>::value, bool> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::contains ( const KeyArg &  key) const
inline

◆ count() [1/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_FORCEINLINE size_type momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::count ( const key_type key) const
inline

◆ count() [2/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf<IsValidKeyArg<KeyArg>::value, size_type> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::count ( const KeyArg &  key) const
inline

◆ emplace() [1/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace ( )
inline

◆ emplace() [2/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg , typename MappedArg >
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace ( KeyArg &&  keyArg,
MappedArg &&  mappedArg 
)
inline

◆ emplace() [3/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename... KeyArgs, typename... MappedArgs>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace ( std::piecewise_construct_t  ,
std::tuple< KeyArgs... >  keyArgs,
std::tuple< MappedArgs... >  mappedArgs 
)
inline

◆ emplace() [4/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename ValueArg >
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace ( ValueArg &&  valueArg)
inline

◆ emplace_hint() [1/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace_hint ( const_iterator  )
inline

◆ emplace_hint() [2/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg , typename MappedArg >
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace_hint ( const_iterator  ,
KeyArg &&  keyArg,
MappedArg &&  mappedArg 
)
inline

◆ emplace_hint() [3/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename... KeyArgs, typename... MappedArgs>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace_hint ( const_iterator  ,
std::piecewise_construct_t  ,
std::tuple< KeyArgs... >  keyArgs,
std::tuple< MappedArgs... >  mappedArgs 
)
inline

◆ emplace_hint() [4/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename ValueArg >
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::emplace_hint ( const_iterator  ,
ValueArg &&  valueArg 
)
inline

◆ empty()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_NODISCARD bool momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::empty ( ) const
inlinenoexcept

◆ end() [1/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
const_iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::end ( ) const
inlinenoexcept

◆ end() [2/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::end ( )
inlinenoexcept

◆ equal_range() [1/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_FORCEINLINE std::pair<iterator, iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::equal_range ( const key_type key)
inline

◆ equal_range() [2/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_FORCEINLINE std::pair<const_iterator, const_iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::equal_range ( const key_type key) const
inline

◆ equal_range() [3/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf<IsValidKeyArg<KeyArg>::value, std::pair<iterator, iterator> > momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::equal_range ( const KeyArg &  key)
inline

◆ equal_range() [4/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf<IsValidKeyArg<KeyArg>::value, std::pair<const_iterator, const_iterator> > momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::equal_range ( const KeyArg &  key) const
inline

◆ erase() [1/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
size_type momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::erase ( const key_type key)
inline

◆ erase() [2/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::erase ( const_iterator  first,
const_iterator  last 
)
inline

◆ erase() [3/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::erase ( const_iterator  where)
inline

◆ erase() [4/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::erase ( iterator  where)
inline

◆ find() [1/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_FORCEINLINE iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::find ( const key_type key)
inline

◆ find() [2/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
MOMO_FORCEINLINE const_iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::find ( const key_type key) const
inline

◆ find() [3/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf<IsValidKeyArg<KeyArg>::value, iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::find ( const KeyArg &  key)
inline

◆ find() [4/4]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename KeyArg >
MOMO_FORCEINLINE momo::internal::EnableIf<IsValidKeyArg<KeyArg>::value, const_iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::find ( const KeyArg &  key) const
inline

◆ get_allocator()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
allocator_type momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::get_allocator ( ) const
inlinenoexcept

◆ get_nested_container() [1/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
const nested_container_type& momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::get_nested_container ( ) const
inlinenoexcept

◆ get_nested_container() [2/2]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
nested_container_type& momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::get_nested_container ( )
inlinenoexcept

◆ hash_function()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
hasher momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::hash_function ( ) const
inline

◆ insert() [1/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename First , typename Second >
momo::internal::EnableIf<std::is_constructible<key_type, const First&>::value && std::is_constructible<mapped_type, const Second&>::value, iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( const std::pair< First, Second > &  value)
inline

◆ insert() [2/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename First , typename Second >
momo::internal::EnableIf<std::is_constructible<key_type, const First&>::value && std::is_constructible<mapped_type, const Second&>::value, iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( const_iterator  ,
const std::pair< First, Second > &  value 
)
inline

◆ insert() [3/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename First , typename Second >
momo::internal::EnableIf<std::is_constructible<key_type, First&&>::value && std::is_constructible<mapped_type, Second&&>::value, iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( const_iterator  ,
std::pair< First, Second > &&  value 
)
inline

◆ insert() [4/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( const_iterator  ,
std::pair< key_type, mapped_type > &&  value 
)
inline

◆ insert() [5/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename Iterator >
void momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( Iterator  first,
Iterator  last 
)
inline

◆ insert() [6/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
void momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( std::initializer_list< value_type values)
inline

◆ insert() [7/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename First , typename Second >
momo::internal::EnableIf<std::is_constructible<key_type, First&&>::value && std::is_constructible<mapped_type, Second&&>::value, iterator> momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( std::pair< First, Second > &&  value)
inline

◆ insert() [8/8]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
iterator momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::insert ( std::pair< key_type, mapped_type > &&  value)
inline

◆ key_eq()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
key_equal momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::key_eq ( ) const
inline

◆ max_size()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
size_type momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::max_size ( ) const
inlinenoexcept

◆ operator!=()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
bool momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::operator!= ( const unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right) const
inline

◆ operator=() [1/3]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
unordered_multimap& momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::operator= ( const unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right)
inline

◆ operator=() [2/3]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
unordered_multimap& momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::operator= ( std::initializer_list< value_type values)
inline

◆ operator=() [3/3]

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
unordered_multimap& momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::operator= ( unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &&  right)
inlinenoexcept

◆ operator==()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
bool momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::operator== ( const unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right) const
inline

◆ size()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
size_type momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::size ( ) const
inlinenoexcept

◆ swap()

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
void momo::stdish::unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap >::swap ( unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right)
inlinenoexcept

Friends And Related Function Documentation

◆ erase_if

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
template<typename ValueFilter >
size_type erase_if ( unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  cont,
const ValueFilter &  valueFilter 
)
friend

◆ swap

template<typename TKey , typename TMapped , typename THashFunc = HashCoder<TKey>, typename TEqualFunc = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>, typename THashMultiMap = HashMultiMap<TKey, TMapped, HashTraitsStd<TKey, THashFunc, TEqualFunc>, MemManagerStd<TAllocator>>>
void swap ( unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  left,
unordered_multimap< TKey, TMapped, THashFunc, TEqualFunc, TAllocator, THashMultiMap > &  right 
)
friend

The documentation for this class was generated from the following file: