template<typename TKey, typename TMapped, typename THasher = HashCoder<TKey>, typename TEqualComparer = std::equal_to<TKey>, typename TAllocator = std::allocator<std::pair<const TKey, TMapped>>>
class momo::stdish::unordered_multimap_open< TKey, TMapped, THasher, TEqualComparer, TAllocator >
momo::stdish::unordered_multimap_open is similar to std::unordered_multimap, but much more efficient in operation speed. The implementation is based on open addressing hash table. 
Deviations from the std::unordered_multimap:
- Each of duplicate keys stored only once.
- max_load_factor,- rehash,- reserve,- load_factorand all the functions, associated with buckets or nodes, are not implemented.
- Container items must be movable (preferably without exceptions) or copyable, similar to items of std::vector.
- After each addition or removal of the item all iterators and references to items become invalid and should not be used.
- Type referenceis not the same asvalue_type&, sofor (auto& p : map)is illegal, butfor (auto p : map)orfor (const auto& p : map)orfor (auto&& p : map)is allowed.
- Functions clear,begin,cbeginand iterator increment take O(bucket_count) time in worst case.
- Functions erasecan throw exceptions thrown bykey_typeandmapped_typemove 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.