Loading...
Searching...
No Matches
robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy > Class Template Reference

Internal common class used by robin_map and robin_set. More...

#include <robin_hash.h>

Classes

class  robin_iterator
 The 'operator*()' and 'operator->()' methods return a const reference and const pointer respectively to the stored value type. More...
 

Public Types

using key_type = typename KeySelect::key_type
 
using value_type = ValueType
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using hasher = Hash
 
using key_equal = KeyEqual
 
using allocator_type = Allocator
 
using reference = value_type&
 
using const_reference = const value_type&
 
using pointer = value_type*
 
using const_pointer = const value_type*
 
using iterator = robin_iterator<false>
 
using const_iterator = robin_iterator<true>
 

Public Member Functions

 robin_hash (size_type bucket_count, const Hash &hash, const KeyEqual &equal, const Allocator &alloc, float min_load_factor=DEFAULT_MIN_LOAD_FACTOR, float max_load_factor=DEFAULT_MAX_LOAD_FACTOR)
 C++11 doesn't support the creation of a std::vector with a custom allocator and 'count' default-inserted elements.
 
 robin_hash (const robin_hash &other)
 
 robin_hash (robin_hash &&other) noexcept(std::is_nothrow_move_constructible< Hash >::value &&std::is_nothrow_move_constructible< KeyEqual >::value &&std::is_nothrow_move_constructible< GrowthPolicy >::value &&std::is_nothrow_move_constructible< buckets_container_type >::value)
 
robin_hashoperator= (const robin_hash &other)
 
robin_hashoperator= (robin_hash &&other)
 
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
 
template<typename P >
std::pair< iterator, bool > insert (P &&value)
 
template<typename P >
iterator insert_hint (const_iterator hint, P &&value)
 
template<class InputIt >
void insert (InputIt first, InputIt last)
 
template<class K , class M >
std::pair< iterator, bool > insert_or_assign (K &&key, M &&obj)
 
template<class K , class M >
iterator insert_or_assign (const_iterator hint, K &&key, 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 K , class... Args>
std::pair< iterator, bool > try_emplace (K &&key, Args &&... args)
 
template<class K , class... Args>
iterator try_emplace_hint (const_iterator hint, K &&key, Args &&... args)
 
void erase_fast (iterator pos)
 
iterator erase (iterator pos)
 Here to avoid template<class K> size_type erase(const K& key) being used when we use an iterator instead of a const_iterator.
 
iterator erase (const_iterator pos)
 
iterator erase (const_iterator first, const_iterator last)
 
template<class K >
size_type erase (const K &key)
 
template<class K >
size_type erase (const K &key, std::size_t hash)
 
void swap (robin_hash &other)
 
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
U::value_type & at (const K &key)
 
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
U::value_type & at (const K &key, std::size_t hash)
 
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
const U::value_type & at (const K &key) const
 
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
const U::value_type & at (const K &key, std::size_t hash) const
 
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
U::value_type & operator[] (K &&key)
 
template<class K >
size_type count (const K &key) const
 
template<class K >
size_type count (const K &key, std::size_t hash) const
 
template<class K >
iterator find (const K &key)
 
template<class K >
iterator find (const K &key, std::size_t hash)
 
template<class K >
const_iterator find (const K &key) const
 
template<class K >
const_iterator find (const K &key, std::size_t hash) const
 
template<class K >
bool contains (const K &key) const
 
template<class K >
bool contains (const K &key, std::size_t hash) const
 
template<class K >
std::pair< iterator, iteratorequal_range (const K &key)
 
template<class K >
std::pair< iterator, iteratorequal_range (const K &key, std::size_t hash)
 
template<class K >
std::pair< const_iterator, const_iteratorequal_range (const K &key) const
 
template<class K >
std::pair< const_iterator, const_iteratorequal_range (const K &key, std::size_t hash) const
 
size_type bucket_count () const
 
size_type max_bucket_count () const
 
float load_factor () const
 
float min_load_factor () const
 
float max_load_factor () const
 
void min_load_factor (float ml)
 
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)
 
template<class Serializer >
void serialize (Serializer &serializer) const
 
template<class Deserializer >
void deserialize (Deserializer &deserializer, bool hash_compatible)
 

Static Public Attributes

static const size_type DEFAULT_INIT_BUCKETS_SIZE = 0
 
static constexpr float DEFAULT_MAX_LOAD_FACTOR = 0.5f
 
static constexpr float MINIMUM_MAX_LOAD_FACTOR = 0.2f
 
static constexpr float MAXIMUM_MAX_LOAD_FACTOR = 0.95f
 
static constexpr float DEFAULT_MIN_LOAD_FACTOR = 0.0f
 
static constexpr float MINIMUM_MIN_LOAD_FACTOR = 0.0f
 
static constexpr float MAXIMUM_MIN_LOAD_FACTOR = 0.15f
 

Detailed Description

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, bool StoreHash, class GrowthPolicy>
class pxr_tsl::detail_robin_hash::robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy >

Internal common class used by robin_map and robin_set.

ValueType is what will be stored by robin_hash (usually std::pair<Key, T> for map and Key for set).

KeySelect should be a FunctionObject which takes a ValueType in parameter and returns a reference to the key.

ValueSelect should be a FunctionObject which takes a ValueType in parameter and returns a reference to the value. ValueSelect should be void if there is no value (in a set for example).

The strong exception guarantee only holds if the expression std::is_nothrow_swappable<ValueType>::value && std::is_nothrow_move_constructible<ValueType>::value is true.

Behaviour is undefined if the destructor of ValueType throws.

Definition at line 367 of file robin_hash.h.

Member Typedef Documentation

◆ allocator_type

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using allocator_type = Allocator

Definition at line 389 of file robin_hash.h.

◆ const_iterator

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using const_iterator = robin_iterator<true>

Definition at line 395 of file robin_hash.h.

◆ const_pointer

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using const_pointer = const value_type*

Definition at line 393 of file robin_hash.h.

◆ const_reference

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using const_reference = const value_type&

Definition at line 391 of file robin_hash.h.

◆ difference_type

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using difference_type = std::ptrdiff_t

Definition at line 386 of file robin_hash.h.

◆ hasher

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using hasher = Hash

Definition at line 387 of file robin_hash.h.

◆ iterator

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using iterator = robin_iterator<false>

Definition at line 394 of file robin_hash.h.

◆ key_equal

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using key_equal = KeyEqual

Definition at line 388 of file robin_hash.h.

◆ key_type

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using key_type = typename KeySelect::key_type

Definition at line 383 of file robin_hash.h.

◆ pointer

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using pointer = value_type*

Definition at line 392 of file robin_hash.h.

◆ reference

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using reference = value_type&

Definition at line 390 of file robin_hash.h.

◆ size_type

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using size_type = std::size_t

Definition at line 385 of file robin_hash.h.

◆ value_type

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
using value_type = ValueType

Definition at line 384 of file robin_hash.h.

Constructor & Destructor Documentation

◆ robin_hash() [1/3]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
robin_hash ( size_type bucket_count,
const Hash & hash,
const KeyEqual & equal,
const Allocator & alloc,
float min_load_factor = DEFAULT_MIN_LOAD_FACTOR,
float max_load_factor = DEFAULT_MAX_LOAD_FACTOR )
inline

C++11 doesn't support the creation of a std::vector with a custom allocator and 'count' default-inserted elements.

The needed contructor explicit vector(size_type count, const Allocator& alloc = Allocator()); is only available in C++14 and later. We thus must resize after using the vector(const Allocator& alloc) constructor.

We can't use vector(size_type count, const T& value, const Allocator& alloc) as it requires the value T to be copyable.

Definition at line 588 of file robin_hash.h.

◆ robin_hash() [2/3]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
robin_hash ( const robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy > & other)
inline

Definition at line 619 of file robin_hash.h.

◆ robin_hash() [3/3]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
robin_hash ( robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy > && other)
inlinenoexcept

Definition at line 634 of file robin_hash.h.

Member Function Documentation

◆ at() [1/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
U::value_type & at ( const K & key)
inline

Definition at line 954 of file robin_hash.h.

◆ at() [2/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
const U::value_type & at ( const K & key) const
inline

Definition at line 967 of file robin_hash.h.

◆ at() [3/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
U::value_type & at ( const K & key,
std::size_t hash )
inline

Definition at line 960 of file robin_hash.h.

◆ at() [4/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
const U::value_type & at ( const K & key,
std::size_t hash ) const
inline

Definition at line 973 of file robin_hash.h.

◆ begin() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
const_iterator begin ( ) const
inlinenoexcept

Definition at line 701 of file robin_hash.h.

◆ begin() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
iterator begin ( )
inlinenoexcept

Definition at line 692 of file robin_hash.h.

◆ bucket_count()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
size_type bucket_count ( ) const
inline

Definition at line 1058 of file robin_hash.h.

◆ cbegin()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
const_iterator cbegin ( ) const
inlinenoexcept

Definition at line 703 of file robin_hash.h.

◆ cend()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
const_iterator cend ( ) const
inlinenoexcept

Definition at line 716 of file robin_hash.h.

◆ clear()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void clear ( )
inlinenoexcept

Definition at line 732 of file robin_hash.h.

◆ contains() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
bool contains ( const K & key) const
inline

Definition at line 1023 of file robin_hash.h.

◆ contains() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
bool contains ( const K & key,
std::size_t hash ) const
inline

Definition at line 1028 of file robin_hash.h.

◆ count() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
size_type count ( const K & key) const
inline

Definition at line 989 of file robin_hash.h.

◆ count() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
size_type count ( const K & key,
std::size_t hash ) const
inline

Definition at line 994 of file robin_hash.h.

◆ deserialize()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class Deserializer >
void deserialize ( Deserializer & deserializer,
bool hash_compatible )
inline

Definition at line 1122 of file robin_hash.h.

◆ emplace()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class... Args>
std::pair< iterator, bool > emplace ( Args &&... args)
inline

Definition at line 803 of file robin_hash.h.

◆ emplace_hint()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class... Args>
iterator emplace_hint ( const_iterator hint,
Args &&... args )
inline

Definition at line 808 of file robin_hash.h.

◆ empty()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
bool empty ( ) const
inlinenoexcept

Definition at line 723 of file robin_hash.h.

◆ end() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
const_iterator end ( ) const
inlinenoexcept

Definition at line 714 of file robin_hash.h.

◆ end() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
iterator end ( )
inlinenoexcept

Definition at line 712 of file robin_hash.h.

◆ equal_range() [1/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
std::pair< iterator, iterator > equal_range ( const K & key)
inline

Definition at line 1033 of file robin_hash.h.

◆ equal_range() [2/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
std::pair< const_iterator, const_iterator > equal_range ( const K & key) const
inline

Definition at line 1044 of file robin_hash.h.

◆ equal_range() [3/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
std::pair< iterator, iterator > equal_range ( const K & key,
std::size_t hash )
inline

Definition at line 1038 of file robin_hash.h.

◆ equal_range() [4/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
std::pair< const_iterator, const_iterator > equal_range ( const K & key,
std::size_t hash ) const
inline

Definition at line 1049 of file robin_hash.h.

◆ erase() [1/5]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
size_type erase ( const K & key)
inline

Definition at line 917 of file robin_hash.h.

◆ erase() [2/5]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
size_type erase ( const K & key,
std::size_t hash )
inline

Definition at line 922 of file robin_hash.h.

◆ erase() [3/5]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
iterator erase ( const_iterator first,
const_iterator last )
inline

Definition at line 853 of file robin_hash.h.

◆ erase() [4/5]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
iterator erase ( const_iterator pos)
inline

Definition at line 851 of file robin_hash.h.

◆ erase() [5/5]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
iterator erase ( iterator pos)
inline

Here to avoid template<class K> size_type erase(const K& key) being used when we use an iterator instead of a const_iterator.

Erase bucket used a backward shift after clearing the bucket. Check if there is a new value in the bucket, if not get the next non-empty.

Definition at line 836 of file robin_hash.h.

◆ erase_fast()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void erase_fast ( iterator pos)
inline

Definition at line 828 of file robin_hash.h.

◆ find() [1/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
iterator find ( const K & key)
inline

Definition at line 1003 of file robin_hash.h.

◆ find() [2/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
const_iterator find ( const K & key) const
inline

Definition at line 1013 of file robin_hash.h.

◆ find() [3/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
iterator find ( const K & key,
std::size_t hash )
inline

Definition at line 1008 of file robin_hash.h.

◆ find() [4/4]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K >
const_iterator find ( const K & key,
std::size_t hash ) const
inline

Definition at line 1018 of file robin_hash.h.

◆ get_allocator()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
allocator_type get_allocator ( ) const
inline

Definition at line 685 of file robin_hash.h.

◆ hash_function()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
hasher hash_function ( ) const
inline

Definition at line 1105 of file robin_hash.h.

◆ insert() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class InputIt >
void insert ( InputIt first,
InputIt last )
inline

Definition at line 761 of file robin_hash.h.

◆ insert() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<typename P >
std::pair< iterator, bool > insert ( P && value)
inline

Definition at line 746 of file robin_hash.h.

◆ insert_hint()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<typename P >
iterator insert_hint ( const_iterator hint,
P && value )
inline

Definition at line 751 of file robin_hash.h.

◆ insert_or_assign() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class M >
iterator insert_or_assign ( const_iterator hint,
K && key,
M && obj )
inline

Definition at line 791 of file robin_hash.h.

◆ insert_or_assign() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class M >
std::pair< iterator, bool > insert_or_assign ( K && key,
M && obj )
inline

Definition at line 781 of file robin_hash.h.

◆ key_eq()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
key_equal key_eq ( ) const
inline

Definition at line 1107 of file robin_hash.h.

◆ load_factor()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float load_factor ( ) const
inline

Definition at line 1068 of file robin_hash.h.

◆ max_bucket_count()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
size_type max_bucket_count ( ) const
inline

Definition at line 1060 of file robin_hash.h.

◆ max_load_factor() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float max_load_factor ( ) const
inline

Definition at line 1078 of file robin_hash.h.

◆ max_load_factor() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void max_load_factor ( float ml)
inline

Definition at line 1085 of file robin_hash.h.

◆ max_size()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
size_type max_size ( ) const
inlinenoexcept

Definition at line 727 of file robin_hash.h.

◆ min_load_factor() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float min_load_factor ( ) const
inline

Definition at line 1076 of file robin_hash.h.

◆ min_load_factor() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void min_load_factor ( float ml)
inline

Definition at line 1080 of file robin_hash.h.

◆ mutable_iterator()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
iterator mutable_iterator ( const_iterator pos)
inline

Definition at line 1112 of file robin_hash.h.

◆ operator=() [1/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
robin_hash & operator= ( const robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy > & other)
inline

Definition at line 655 of file robin_hash.h.

◆ operator=() [2/2]

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
robin_hash & operator= ( robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy > && other)
inline

Definition at line 678 of file robin_hash.h.

◆ operator[]()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
U::value_type & operator[] ( K && key)
inline

Definition at line 984 of file robin_hash.h.

◆ rehash()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void rehash ( size_type count_)
inline

Definition at line 1092 of file robin_hash.h.

◆ reserve()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void reserve ( size_type count_)
inline

Definition at line 1098 of file robin_hash.h.

◆ serialize()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class Serializer >
void serialize ( Serializer & serializer) const
inline

Definition at line 1117 of file robin_hash.h.

◆ size()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
size_type size ( ) const
inlinenoexcept

Definition at line 725 of file robin_hash.h.

◆ swap()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
void swap ( robin_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy > & other)
inline

Definition at line 932 of file robin_hash.h.

◆ try_emplace()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class... Args>
std::pair< iterator, bool > try_emplace ( K && key,
Args &&... args )
inline

Definition at line 813 of file robin_hash.h.

◆ try_emplace_hint()

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
template<class K , class... Args>
iterator try_emplace_hint ( const_iterator hint,
K && key,
Args &&... args )
inline

Definition at line 820 of file robin_hash.h.

Member Data Documentation

◆ DEFAULT_INIT_BUCKETS_SIZE

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
const size_type DEFAULT_INIT_BUCKETS_SIZE = 0
static

Definition at line 1571 of file robin_hash.h.

◆ DEFAULT_MAX_LOAD_FACTOR

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float DEFAULT_MAX_LOAD_FACTOR = 0.5f
staticconstexpr

Definition at line 1573 of file robin_hash.h.

◆ DEFAULT_MIN_LOAD_FACTOR

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float DEFAULT_MIN_LOAD_FACTOR = 0.0f
staticconstexpr

Definition at line 1577 of file robin_hash.h.

◆ MAXIMUM_MAX_LOAD_FACTOR

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float MAXIMUM_MAX_LOAD_FACTOR = 0.95f
staticconstexpr

Definition at line 1575 of file robin_hash.h.

◆ MAXIMUM_MIN_LOAD_FACTOR

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float MAXIMUM_MIN_LOAD_FACTOR = 0.15f
staticconstexpr

Definition at line 1579 of file robin_hash.h.

◆ MINIMUM_MAX_LOAD_FACTOR

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float MINIMUM_MAX_LOAD_FACTOR = 0.2f
staticconstexpr

Definition at line 1574 of file robin_hash.h.

◆ MINIMUM_MIN_LOAD_FACTOR

template<class ValueType , class KeySelect , class ValueSelect , class Hash , class KeyEqual , class Allocator , bool StoreHash, class GrowthPolicy >
float MINIMUM_MIN_LOAD_FACTOR = 0.0f
staticconstexpr

Definition at line 1578 of file robin_hash.h.


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