Implementation of a hash map using the hopscotch hashing algorithm.
The Key and the value T must be either nothrow move-constructible, copy-constuctible or both.
The size of the neighborhood (NeighborhoodSize) must be > 0 and <= 62 if StoreHash is false. When StoreHash is true, 32-bits of the hash will be stored alongside the neighborhood limiting the NeighborhoodSize to <= 30. There is no memory usage difference between 'NeighborhoodSize 62; StoreHash false' and 'NeighborhoodSize 30; StoreHash true'.
Storing the hash may improve performance on insert during the rehash process if the hash takes time to compute. It may also improve read performance if the KeyEqual function takes time (or incurs a cache-miss). If used with simple Hash and KeyEqual it may slow things down.
StoreHash can only be set if the GrowthPolicy is set to tsl::power_of_two_growth_policy.
GrowthPolicy defines how the map grows and consequently how a hash value is mapped to a bucket. By default the map uses tsl::power_of_two_growth_policy. This policy keeps the number of buckets to a power of two and uses a mask to map the hash to a bucket instead of the slow modulo. You may define your own growth policy, check tsl::power_of_two_growth_policy for the interface.
If the destructors of Key or T throw an exception, behaviour of the class is undefined.
Iterators invalidation:
Definition at line 79 of file hopscotch_map.h.
#include <hopscotch_map.h>
Data Structures | |
class | KeySelect |
class | ValueSelect |
Public Types | |
using | key_type = typename ht::key_type |
using | mapped_type = T |
using | value_type = typename ht::value_type |
using | size_type = typename ht::size_type |
using | difference_type = typename ht::difference_type |
using | hasher = typename ht::hasher |
using | key_equal = typename ht::key_equal |
using | allocator_type = typename ht::allocator_type |
using | reference = typename ht::reference |
using | const_reference = typename ht::const_reference |
using | pointer = typename ht::pointer |
using | const_pointer = typename ht::const_pointer |
using | iterator = typename ht::iterator |
using | const_iterator = typename ht::const_iterator |
Public Member Functions | |
hopscotch_map (size_type bucket_count, const Hash &hash=Hash(), const KeyEqual &equal=KeyEqual(), const Allocator &alloc=Allocator()) | |
hopscotch_map (size_type bucket_count, const Allocator &alloc) | |
hopscotch_map (size_type bucket_count, const Hash &hash, const Allocator &alloc) | |
hopscotch_map (const Allocator &alloc) | |
template<class InputIt > | |
hopscotch_map (InputIt first, InputIt last, size_type bucket_count=ht::DEFAULT_INIT_BUCKETS_SIZE, const Hash &hash=Hash(), const KeyEqual &equal=KeyEqual(), const Allocator &alloc=Allocator()) | |
template<class InputIt > | |
hopscotch_map (InputIt first, InputIt last, size_type bucket_count, const Allocator &alloc) | |
template<class InputIt > | |
hopscotch_map (InputIt first, InputIt last, size_type bucket_count, const Hash &hash, const Allocator &alloc) | |
hopscotch_map (std::initializer_list< value_type > init, size_type bucket_count=ht::DEFAULT_INIT_BUCKETS_SIZE, const Hash &hash=Hash(), const KeyEqual &equal=KeyEqual(), const Allocator &alloc=Allocator()) | |
hopscotch_map (std::initializer_list< value_type > init, size_type bucket_count, const Allocator &alloc) | |
hopscotch_map (std::initializer_list< value_type > init, size_type bucket_count, const Hash &hash, const Allocator &alloc) | |
hopscotch_map & | operator= (std::initializer_list< value_type > ilist) |
allocator_type | get_allocator () const |
iterator | begin () noexcept |
const_iterator | begin () const noexcept |
const_iterator | cbegin () const noexcept |
iterator | end () noexcept |
const_iterator | end () const noexcept |
const_iterator | cend () const noexcept |
bool | empty () const noexcept |
size_type | size () const noexcept |
size_type | max_size () const noexcept |
void | clear () noexcept |
std::pair< iterator, bool > | insert (const value_type &value) |
template<class P , typename std::enable_if< std::is_constructible< value_type, P && >::value >::type * = nullptr> | |
std::pair< iterator, bool > | insert (P &&value) |
std::pair< iterator, bool > | insert (value_type &&value) |
iterator | insert (const_iterator hint, const value_type &value) |
template<class P , typename std::enable_if< std::is_constructible< value_type, P && >::value >::type * = nullptr> | |
iterator | insert (const_iterator hint, P &&value) |
iterator | insert (const_iterator hint, value_type &&value) |
template<class InputIt > | |
void | insert (InputIt first, InputIt last) |
void | insert (std::initializer_list< value_type > ilist) |
template<class M > | |
std::pair< iterator, bool > | insert_or_assign (const key_type &k, M &&obj) |
template<class M > | |
std::pair< iterator, bool > | insert_or_assign (key_type &&k, M &&obj) |
template<class M > | |
iterator | insert_or_assign (const_iterator hint, const key_type &k, M &&obj) |
template<class M > | |
iterator | insert_or_assign (const_iterator hint, key_type &&k, M &&obj) |
template<class... Args> | |
std::pair< iterator, bool > | emplace (Args &&... args) |
template<class... Args> | |
iterator | emplace_hint (const_iterator hint, Args &&... args) |
template<class... Args> | |
std::pair< iterator, bool > | try_emplace (const key_type &k, Args &&... args) |
template<class... Args> | |
std::pair< iterator, bool > | try_emplace (key_type &&k, Args &&... args) |
template<class... Args> | |
iterator | try_emplace (const_iterator hint, const key_type &k, Args &&... args) |
template<class... Args> | |
iterator | try_emplace (const_iterator hint, key_type &&k, Args &&... args) |
iterator | erase (iterator pos) |
iterator | erase (const_iterator pos) |
iterator | erase (const_iterator first, const_iterator last) |
size_type | erase (const key_type &key) |
size_type | erase (const key_type &key, std::size_t precalculated_hash) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
size_type | erase (const K &key) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
size_type | erase (const K &key, std::size_t precalculated_hash) |
void | swap (hopscotch_map &other) |
T & | at (const Key &key) |
T & | at (const Key &key, std::size_t precalculated_hash) |
const T & | at (const Key &key) const |
const T & | at (const Key &key, std::size_t precalculated_hash) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
T & | at (const K &key) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
T & | at (const K &key, std::size_t precalculated_hash) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
const T & | at (const K &key) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
const T & | at (const K &key, std::size_t precalculated_hash) const |
T & | operator[] (const Key &key) |
T & | operator[] (Key &&key) |
size_type | count (const Key &key) const |
size_type | count (const Key &key, std::size_t precalculated_hash) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
size_type | count (const K &key) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
size_type | count (const K &key, std::size_t precalculated_hash) const |
iterator | find (const Key &key) |
iterator | find (const Key &key, std::size_t precalculated_hash) |
const_iterator | find (const Key &key) const |
const_iterator | find (const Key &key, std::size_t precalculated_hash) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
iterator | find (const K &key) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
iterator | find (const K &key, std::size_t precalculated_hash) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
const_iterator | find (const K &key) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
const_iterator | find (const K &key, std::size_t precalculated_hash) const |
std::pair< iterator, iterator > | equal_range (const Key &key) |
std::pair< iterator, iterator > | equal_range (const Key &key, std::size_t precalculated_hash) |
std::pair< const_iterator, const_iterator > | equal_range (const Key &key) const |
std::pair< const_iterator, const_iterator > | equal_range (const Key &key, std::size_t precalculated_hash) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
std::pair< iterator, iterator > | equal_range (const K &key) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
std::pair< iterator, iterator > | equal_range (const K &key, std::size_t precalculated_hash) |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
std::pair< const_iterator, const_iterator > | equal_range (const K &key) const |
template<class K , class KE = KeyEqual, typename std::enable_if< has_is_transparent< KE >::value >::type * = nullptr> | |
std::pair< const_iterator, const_iterator > | equal_range (const K &key, std::size_t precalculated_hash) const |
size_type | bucket_count () const |
size_type | max_bucket_count () const |
float | load_factor () const |
float | max_load_factor () const |
void | max_load_factor (float ml) |
void | rehash (size_type count) |
void | reserve (size_type count) |
hasher | hash_function () const |
key_equal | key_eq () const |
iterator | mutable_iterator (const_iterator pos) |
size_type | overflow_size () const noexcept |
Private Types | |
template<typename U > | |
using | has_is_transparent = tsl::detail_hopscotch_hash::has_is_transparent< U > |
using | overflow_container_type = std::list< std::pair< Key, T >, Allocator > |
using | ht = detail_hopscotch_hash::hopscotch_hash< std::pair< Key, T >, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, overflow_container_type > |
Private Attributes | |
ht | m_ht |
Friends | |
bool | operator== (const hopscotch_map &lhs, const hopscotch_map &rhs) |
bool | operator!= (const hopscotch_map &lhs, const hopscotch_map &rhs) |
void | swap (hopscotch_map &lhs, hopscotch_map &rhs) |
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::allocator_type = typename ht::allocator_type |
Definition at line 126 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::const_iterator = typename ht::const_iterator |
Definition at line 132 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::const_pointer = typename ht::const_pointer |
Definition at line 130 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::const_reference = typename ht::const_reference |
Definition at line 128 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::difference_type = typename ht::difference_type |
Definition at line 123 of file hopscotch_map.h.
|
private |
Definition at line 82 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::hasher = typename ht::hasher |
Definition at line 124 of file hopscotch_map.h.
|
private |
Definition at line 112 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::iterator = typename ht::iterator |
Definition at line 131 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::key_equal = typename ht::key_equal |
Definition at line 125 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::key_type = typename ht::key_type |
Definition at line 119 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::mapped_type = T |
Definition at line 120 of file hopscotch_map.h.
|
private |
Definition at line 111 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::pointer = typename ht::pointer |
Definition at line 129 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::reference = typename ht::reference |
Definition at line 127 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::size_type = typename ht::size_type |
Definition at line 122 of file hopscotch_map.h.
using tsl::hopscotch_map< Key, T, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy >::value_type = typename ht::value_type |
Definition at line 121 of file hopscotch_map.h.
|
inline |
Definition at line 139 of file hopscotch_map.h.
|
inlineexplicit |
Definition at line 142 of file hopscotch_map.h.
|
inline |
Definition at line 150 of file hopscotch_map.h.
|
inline |
Definition at line 155 of file hopscotch_map.h.
|
inlineexplicit |
Definition at line 161 of file hopscotch_map.h.
|
inline |
Definition at line 165 of file hopscotch_map.h.
|
inline |
Definition at line 175 of file hopscotch_map.h.
|
inline |
Definition at line 182 of file hopscotch_map.h.
|
inline |
Definition at line 189 of file hopscotch_map.h.
|
inline |
Definition at line 198 of file hopscotch_map.h.
|
inline |
Definition at line 205 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 428 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 444 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 437 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 450 of file hopscotch_map.h.
|
inline |
Definition at line 406 of file hopscotch_map.h.
|
inline |
Definition at line 415 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 412 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 420 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 230 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 229 of file hopscotch_map.h.
|
inline |
Definition at line 601 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 231 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 235 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 248 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 476 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 485 of file hopscotch_map.h.
|
inline |
Definition at line 461 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 467 of file hopscotch_map.h.
|
inline |
Due to the way elements are stored, emplace will need to move or copy the key-value once. The method is equivalent to insert(value_type(std::forward<Args>(args)...));
Mainly here for compatibility with the std::unordered_map interface.
Definition at line 323 of file hopscotch_map.h.
|
inline |
Due to the way elements are stored, emplace_hint will need to move or copy the key-value once. The method is equivalent to insert(hint, value_type(std::forward<Args>(args)...));
Mainly here for compatibility with the std::unordered_map interface.
Definition at line 337 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 241 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 234 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 233 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 567 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 585 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 577 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 591 of file hopscotch_map.h.
|
inline |
Definition at line 543 of file hopscotch_map.h.
|
inline |
Definition at line 553 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 549 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 558 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 385 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash.
Definition at line 394 of file hopscotch_map.h.
|
inline |
Definition at line 370 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash.
Definition at line 376 of file hopscotch_map.h.
|
inline |
Definition at line 369 of file hopscotch_map.h.
|
inline |
Definition at line 368 of file hopscotch_map.h.
|
inline |
Definition at line 367 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 512 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Definition at line 527 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 521 of file hopscotch_map.h.
|
inline |
This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. If so, K must be hashable and comparable to Key.
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 536 of file hopscotch_map.h.
|
inline |
Definition at line 490 of file hopscotch_map.h.
|
inline |
Definition at line 498 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 496 of file hopscotch_map.h.
|
inline |
Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup if you already have the hash.
Definition at line 503 of file hopscotch_map.h.
|
inline |
Definition at line 223 of file hopscotch_map.h.
|
inline |
Definition at line 619 of file hopscotch_map.h.
|
inline |
Definition at line 253 of file hopscotch_map.h.
|
inline |
Definition at line 267 of file hopscotch_map.h.
|
inline |
Definition at line 272 of file hopscotch_map.h.
|
inline |
Definition at line 276 of file hopscotch_map.h.
|
inline |
Definition at line 282 of file hopscotch_map.h.
|
inline |
Definition at line 258 of file hopscotch_map.h.
|
inline |
Definition at line 286 of file hopscotch_map.h.
|
inline |
Definition at line 262 of file hopscotch_map.h.
|
inline |
Definition at line 294 of file hopscotch_map.h.
|
inline |
Definition at line 304 of file hopscotch_map.h.
|
inline |
Definition at line 309 of file hopscotch_map.h.
|
inline |
Definition at line 299 of file hopscotch_map.h.
|
inline |
Definition at line 620 of file hopscotch_map.h.
|
inline |
Definition at line 608 of file hopscotch_map.h.
|
inline |
Definition at line 602 of file hopscotch_map.h.
|
inline |
Definition at line 609 of file hopscotch_map.h.
|
inline |
Definition at line 610 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 243 of file hopscotch_map.h.
|
inline |
Convert a const_iterator to an iterator.
Definition at line 629 of file hopscotch_map.h.
|
inline |
Definition at line 214 of file hopscotch_map.h.
|
inline |
Definition at line 455 of file hopscotch_map.h.
|
inline |
Definition at line 456 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 633 of file hopscotch_map.h.
|
inline |
Definition at line 612 of file hopscotch_map.h.
|
inline |
Definition at line 613 of file hopscotch_map.h.
|
inlinenoexcept |
Definition at line 242 of file hopscotch_map.h.
|
inline |
Definition at line 401 of file hopscotch_map.h.
|
inline |
Definition at line 345 of file hopscotch_map.h.
|
inline |
Definition at line 355 of file hopscotch_map.h.
|
inline |
Definition at line 360 of file hopscotch_map.h.
|
inline |
Definition at line 350 of file hopscotch_map.h.
|
friend |
Definition at line 650 of file hopscotch_map.h.
|
friend |
Definition at line 635 of file hopscotch_map.h.
|
friend |
Definition at line 654 of file hopscotch_map.h.
|
private |
Definition at line 661 of file hopscotch_map.h.