|
BDE 4.39.x Production Release
|
#include <bdlc_flathashmap.h>
This class template implements a value-semantic container type holding an unordered map of KEY-VALUE pairs having unique keys that provides a mapping from keys of (template parameter) type KEY to their associated mapped values of (template parameter) type VALUE. The (template parameter) type HASH is a functor providing the hash value for KEY. The (template parameter) type EQUAL is a functor providing the equality function for two KEY values. See {Requirements on KEY, HASH, and EQUAL} for more information.
See bdlc_flathashmap
Public Types | |
| typedef bsl::pair< typename bsl::add_const< KEY >::type, VALUE > | value_type |
| typedef KEY | key_type |
| typedef VALUE | mapped_type |
| typedef bsl::size_t | size_type |
| typedef bsl::ptrdiff_t | difference_type |
| typedef EQUAL | key_compare |
| typedef HASH | hasher |
| typedef value_type & | reference |
| typedef const value_type & | const_reference |
| typedef value_type * | pointer |
| typedef const value_type * | const_pointer |
| typedef ImplType::iterator | iterator |
| typedef ImplType::const_iterator | const_iterator |
Public Member Functions | |
| FlatHashMap () | |
| FlatHashMap (bslma::Allocator *basicAllocator) | |
| FlatHashMap (bsl::size_t capacity) | |
| FlatHashMap (bsl::size_t capacity, bslma::Allocator *basicAllocator) | |
| FlatHashMap (bsl::size_t capacity, const HASH &hash, bslma::Allocator *basicAllocator=0) | |
| FlatHashMap (bsl::size_t capacity, const HASH &hash, const EQUAL &equal, bslma::Allocator *basicAllocator=0) | |
| template<class INPUT_ITERATOR > | |
| FlatHashMap (INPUT_ITERATOR first, INPUT_ITERATOR last, bslma::Allocator *basicAllocator=0) | |
| template<class INPUT_ITERATOR > | |
| FlatHashMap (INPUT_ITERATOR first, INPUT_ITERATOR last, bsl::size_t capacity, bslma::Allocator *basicAllocator=0) | |
| template<class INPUT_ITERATOR > | |
| FlatHashMap (INPUT_ITERATOR first, INPUT_ITERATOR last, bsl::size_t capacity, const HASH &hash, bslma::Allocator *basicAllocator=0) | |
| template<class INPUT_ITERATOR > | |
| FlatHashMap (INPUT_ITERATOR first, INPUT_ITERATOR last, bsl::size_t capacity, const HASH &hash, const EQUAL &equal, bslma::Allocator *basicAllocator=0) | |
| FlatHashMap (const FlatHashMap &original, bslma::Allocator *basicAllocator=0) | |
| FlatHashMap (bslmf::MovableRef< FlatHashMap > original) | |
| FlatHashMap (bslmf::MovableRef< FlatHashMap > original, bslma::Allocator *basicAllocator) | |
| ~FlatHashMap () | |
| FlatHashMap & | operator= (const FlatHashMap &rhs) |
| FlatHashMap & | operator= (bslmf::MovableRef< FlatHashMap > rhs) |
| VALUE & | operator[] (const KEY &key) |
| VALUE & | operator[] (bslmf::MovableRef< KEY > key) |
| VALUE & | at (const KEY &key) |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, VALUE & >::type | at (const LOOKUP_KEY &key) |
| void | clear () |
| bsl::pair< iterator, iterator > | equal_range (const KEY &key) |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, bsl::pair< iterator, iterator > >::type | equal_range (const LOOKUP_KEY &key) |
| template<class... ARGS> | |
| bsl::pair< iterator, bool > | emplace (ARGS &&... args) |
| template<class... ARGS> | |
| iterator | emplace_hint (const_iterator hint, ARGS &&... args) |
| bsl::size_t | erase (const KEY &key) |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, bsl::size_t >::type | erase (LOOKUP_KEY &&key) |
| iterator | erase (const_iterator position) |
| iterator | erase (iterator position) |
| iterator | erase (const_iterator first, const_iterator last) |
| iterator | find (const KEY &key) |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, iterator >::type | find (const LOOKUP_KEY &key) |
| template<class VALUE_TYPE > | |
| bsl::enable_if< bsl::is_convertible< VALUE_TYPE, value_type >::value, bsl::pair< iterator, bool > >::type | insert (BSLS_COMPILERFEATURES_FORWARD_REF(VALUE_TYPE) value) |
| template<class VALUE_TYPE > | |
| bsl::enable_if< bsl::is_convertible< VALUE_TYPE, value_type >::value, iterator >::type | insert (const_iterator, BSLS_COMPILERFEATURES_FORWARD_REF(VALUE_TYPE) value) |
| template<class INPUT_ITERATOR > | |
| void | insert (INPUT_ITERATOR first, INPUT_ITERATOR last) |
| template<class M > | |
| bsl::pair< iterator, bool > | insert_or_assign (const KEY &key, M &&obj) |
| template<class M > | |
| bsl::pair< iterator, bool > | insert_or_assign (BloombergLP::bslmf::MovableRef< KEY > key, M &&obj) |
| template<class LOOKUP_KEY , class M > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, bsl::pair< iterator, bool > >::type | insert_or_assign (LOOKUP_KEY &&key, M &&obj) |
| template<class MAPPED > | |
| iterator | insert_or_assign (const_iterator, const KEY &key, MAPPED &&obj) |
| template<class MAPPED > | |
| iterator | insert_or_assign (const_iterator, BloombergLP::bslmf::MovableRef< KEY > key, MAPPED &&obj) |
| template<class LOOKUP_KEY , class MAPPED > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, iterator >::type | insert_or_assign (const_iterator, LOOKUP_KEY &&key, MAPPED &&obj) |
| void | rehash (bsl::size_t minimumCapacity) |
| void | reserve (bsl::size_t numEntries) |
| void | reset () |
| iterator | begin () |
| iterator | end () |
| void | swap (FlatHashMap &other) |
| const VALUE & | at (const KEY &key) const |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, constVALUE & >::type | at (const LOOKUP_KEY &key) const |
| bsl::size_t | capacity () const |
| bool | contains (const KEY &key) const |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, bool >::type | contains (const LOOKUP_KEY &key) const |
| bsl::size_t | count (const KEY &key) const |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, bsl::size_t >::type | count (const LOOKUP_KEY &key) const |
| bool | empty () const |
| bsl::pair< const_iterator, const_iterator > | equal_range (const KEY &key) const |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, bsl::pair< const_iterator, const_iterator > >::type | equal_range (const LOOKUP_KEY &key) const |
| const_iterator | find (const KEY &key) const |
| template<class LOOKUP_KEY > | |
| bsl::enable_if< BloombergLP::bslmf::IsTransparentPredicate< HASH, LOOKUP_KEY >::value &&BloombergLP::bslmf::IsTransparentPredicate< EQUAL, LOOKUP_KEY >::value, const_iterator >::type | find (const LOOKUP_KEY &key) const |
| HASH | hash_function () const |
| EQUAL | key_eq () const |
| float | load_factor () const |
| float | max_load_factor () const |
| bsl::size_t | size () const |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| const_iterator | end () const |
| bslma::Allocator * | allocator () const |
| bsl::ostream & | print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const |
| template<class... ARGS> | |
| bsl::pair< typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator, bool > | emplace (ARGS &&... args) |
| template<class MAPPED > | |
| bsl::pair< typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator, bool > | insert_or_assign (const KEY &key, MAPPED &&obj) |
| template<class MAPPED > | |
| bsl::pair< typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator, bool > | insert_or_assign (BloombergLP::bslmf::MovableRef< KEY > key, MAPPED &&obj) |
Friends | |
| bool | operator== (const FlatHashMap &, const FlatHashMap &) |
| bool | operator!= (const FlatHashMap &, const FlatHashMap &) |
| template<class K , class V , class H , class E > | |
| void | swap (FlatHashMap< K, V, H, E > &, FlatHashMap< K, V, H, E > &) |
| typedef ImplType::const_iterator bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::const_iterator |
| typedef const value_type* bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::const_pointer |
| typedef const value_type& bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::const_reference |
| typedef bsl::ptrdiff_t bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::difference_type |
| typedef HASH bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::hasher |
| typedef ImplType::iterator bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator |
| typedef EQUAL bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::key_compare |
| typedef KEY bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::key_type |
| typedef VALUE bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::mapped_type |
| typedef value_type* bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::pointer |
| typedef value_type& bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::reference |
| typedef bsl::size_t bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::size_type |
| typedef bsl::pair<typename bsl::add_const<KEY>::type, VALUE> bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::value_type |
|
inline |
Create an empty FlatHashMap object. Optionally specify a capacity indicating the minimum initial size of the underlying array of entries of this container. If capacity is not supplied or is 0, no memory is allocated. Optionally specify a hash functor used to generate the hash values associated with the keys of elements in this container. If hash is not supplied, a default-constructed object of the (template parameter) type HASH is used. Optionally specify an equality functor equal used to determine whether the keys of two elements are equivalent. If equal is not supplied, a default-constructed object of the (template parameter) type EQUAL is used. Optionally specify a basicAllocator used to supply memory. If basicAllocator is not supplied or is 0, the currently installed default allocator is used.
|
inlineexplicit |
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
|
inline |
Create a FlatHashMap object initialized by insertion of the values from the input iterator range specified by first through last (including first, excluding last). Optionally specify a capacity indicating the minimum initial size of the underlying array of entries of this container. If capacity is not supplied or is 0, no memory is allocated. Optionally specify a hash functor used to generate hash values associated with the keys of the elements in this container. If hash is not supplied, a default-constructed object of the (template parameter) type HASH is used. Optionally specify an equality functor equal used to determine whether the keys of two elements are equivalent. If equal is not supplied, a default-constructed object of the (template parameter) type EQUAL is used. Optionally specify a basicAllocator used to supply memory. If basicAllocator is not supplied or is 0, the currently installed default allocator is used.
first and last refer to a sequence of valid values where first is at a position at or before last.
|
inline |
|
inline |
|
inline |
|
inline |
Create a FlatHashMap object having the same value, hasher, and equality comparator as the specified original object. Optionally specify a basicAllocator used to supply memory. If basicAllocator is not specified or is 0, the currently installed default allocator is used.
|
inline |
Create a FlatHashMap object having the same value, hasher, equality comparator, and allocator as the specified original object. The contents of original are moved (in constant time) to this object, original is left in a (valid) unspecified state, and no exceptions will be thrown.
|
inline |
Create a FlatHashMap object having the same value, hasher, and equality comparator as the specified original object, using the specified basicAllocator to supply memory. If basicAllocator is 0, the currently installed default allocator is used. The allocator of original remains unchanged. If original and the newly created object have the same allocator then the contents of original are moved (in constant time) to this object, original is left in a (valid) unspecified state, and no exceptions will be thrown; otherwise, original is unchanged (and an exception may be thrown).
|
inline |
Destroy this object and each of its elements.
|
inline |
Return the allocator used by this flat hash map to supply memory.
|
inline |
Return a reference providing modifiable access to the mapped value associated with the specified key in this map, if such an entry exists; otherwise throw a std::out_of_range exception.
|
inline |
Return a reference providing non-modifiable access to the mapped value associated with the specified key in this map, if such an entry exists; otherwise throw a std::out_of_range exception.
|
inline |
Return a reference providing modifiable access to the mapped value associated with a key that is equivalent to the specified key in this map, if such an entry exists; otherwise throw a std::out_of_range exception.
|
inline |
Return a reference providing non-modifiable access to the mapped value associated with a key that is equivalent to the specified key in this map, if such an entry exists; otherwise throw a std::out_of_range exception.
|
inline |
Return an iterator to the first element in the sequence of modifiable elements maintained by this map, or the end iterator if this map is empty.
|
inline |
Return a const_iterator to the first element in the sequence of elements maintained by this map, or the end iterator if this map is empty.
|
inline |
Return the number of elements this map could hold if the load factor were 1.
|
inline |
Return a const_iterator to the first element in the sequence of elements maintained by this map, or the end iterator if this map is empty.
|
inline |
Return a const_iterator to the past-the-end element in the sequence of elements maintained by this map.
|
inline |
Remove all elements from this map.
capacity method.
|
inline |
Return true if this map contains an element having the specified key, and false otherwise.
|
inline |
Return true if this map contains an element whose key is equivalent to the specified key.
|
inline |
Return the number of elements in this map having the specified key.
|
inline |
Return the number of elements in this map having a key equivalent to the specified key.
| bsl::pair< iterator, bool > bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::emplace | ( | ARGS &&... | args | ) |
Insert into this map a newly-created value_type object, constructed by forwarding get_allocator() (if required) and the specified (variable number of) args to the corresponding constructor of value_type, if a key equivalent to such a value does not already exist in this map; otherwise, this method has no effect (other than possibly creating a temporary value_type object). Return a pair whose first member is an iterator referring to the (possibly newly created and inserted) object in this map whose key is equivalent to that of an object constructed from args, and whose second member is true if a new value was inserted, and false if an equivalent key was already present. This method requires that the (template parameter) types KEY and VALUE both be emplace-constructible from args (see {Requirements on value_type}).
|
inline |
|
inline |
Insert into this map a newly-created value_type object, constructed by forwarding get_allocator() (if required) and the specified (variable number of) args to the corresponding constructor of value_type, if a key equivalent to such a value does not already exist in this map; otherwise, this method has no effect (other than possibly creating a temporary value_type object). Return an iterator referring to the (possibly newly created and inserted) object in this map whose key is equivalent to that of an object constructed from args. The average and worst case complexity of this operation is not affected by the specified hint. This method requires that the (template parameter) types KEY and VALUE both be emplace-constructible from args (see {Requirements on value_type}).
hint is an iterator in the range [begin() .. end()] (both endpoints included). hint is ignored (other than possibly asserting its validity in some build modes).
|
inline |
Return true if this map contains no elements, and false otherwise.
|
inline |
Return an iterator to the past-the-end element in the sequence of modifiable elements maintained by this map.
|
inline |
Return a const_iterator to the past-the-end element in the sequence of elements maintained by this map.
| bsl::pair< typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator, typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator > bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::equal_range | ( | const KEY & | key | ) |
Return a pair of iterators defining the sequence of modifiable elements in this map having the specified key, where the first iterator is positioned at the start of the sequence and the second iterator is positioned one past the end of the sequence. If this map contains no elements having a key equivalent to key, then the two returned iterators will have the same value.
| bsl::pair< typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::const_iterator, typename FlatHashMap< KEY, VALUE, HASH, EQUAL >::const_iterator > bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::equal_range | ( | const KEY & | key | ) | const |
Return a pair of const_iterators defining the sequence of elements in this map having the specified key, where the first iterator is positioned at the start of the sequence and the second iterator is positioned one past the end of the sequence. If this map contains no elements having a key equivalent to key, then the two returned iterators will have the same value.
|
inline |
Return a pair of iterators defining the sequence of modifiable elements in this map having a key equivalent to the specified key, where the first iterator is positioned at the start of the sequence and the second iterator is positioned one past the end of the sequence. If this map contains no elements having a key equivalent to key, then the two returned iterators will have the same value.
|
inline |
Return a pair of iterators providing non-modifiable access to the sequence of value_type objects in this unordered map that are equivalent to the specified key, where the first iterator is positioned at the start of the sequence and the second iterator is positioned one past the end of the sequence. If this unordered map contains no value_type objects equivalent to key, then the two returned iterators will have the same value.
| bsl::size_t bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::erase | ( | const KEY & | key | ) |
Remove from this map the element whose key is equal to the specified key, if it exists, and return 1; otherwise (there is no element having key in this map), return 0 with no other effect. This method invalidates all iterators and references to the removed element.
| FlatHashMap< KEY, VALUE, HASH, EQUAL >::iterator bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::erase | ( | const_iterator | first, |
| const_iterator | last | ||
| ) |
Remove from this map the elements starting at the specified first position up to, but not including, the specified last position, and return an iterator referencing the same element as last. This method invalidates all iterators and references to the removed elements.
first and last are valid iterators on this map, and the first position is at or before the last position in the iteration sequence provided by this container.
|
inline |
Remove from this map the element at the specified position, and return an iterator referring to the modifiable element immediately following the removed element, or to the past-the-end position if the removed element was the last element in the sequence of elements maintained by this map. This method invalidates all iterators and references to the removed element.
position refers to an element in this map.
|
inline |
|
inline |
Remove from this map the element whose key is equivalent to the specified key, if it exists, and return 1; otherwise (there is no element equivalent to key in this map), return 0 with no other effect. This method invalidates all iterators and references to the removed element.
|
inline |
Return an iterator referring to the modifiable element in this map having the specified key, or end() if no such entry exists in this map.
|
inline |
Return a const_iterator referring to the element in this map having the specified key, or end() if no such entry exists in this map.
|
inline |
Return an iterator referring to the modifiable element in this map having the key equivalent to the specified key, or end() if no such entry exists in this map.
|
inline |
Return a const_iterator referring to the element in this map having the specified key, or end() if no such entry exists in this map.
|
inline |
Return (a copy of) the unary hash functor used by this map to generate a hash value (of type bsl::size_t) for a KEY object.
|
inline |
|
inline |
| void bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::insert | ( | INPUT_ITERATOR | first, |
| INPUT_ITERATOR | last | ||
| ) |
Insert into this map the value of each element in the input iterator range specified by first through last (including first, excluding last).
first and last refer to a sequence of valid values where first is at a position at or before last. | bsl::pair< iterator, bool > bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::insert_or_assign | ( | BloombergLP::bslmf::MovableRef< KEY > | key, |
| M && | obj | ||
| ) |
If this map contains an entry with a key equivalent to the specified key, assign the specified obj to the mapped_type of that entry, and return an iterator to that entry and false. Otherwise, insert a new entry into the map with the and return an iterator to that entry and true. obj is left in a (valid) unspecified state.
|
inline |
| bsl::pair< iterator, bool > bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::insert_or_assign | ( | const KEY & | key, |
| M && | obj | ||
| ) |
If this map contains an entry with a key equivalent to the specified key, assign the specified obj to the mapped_type of that entry, and return an iterator to that entry and false. Otherwise, insert a new entry into the map with the and return an iterator to that entry and true. obj is left in a (valid) unspecified state.
|
inline |
|
inline |
If this map contains an entry with a key equivalent to the specified key, assign the specified obj to the mapped_type of that entry. Otherwise, insert a new entry into the map. Return an iterator to the inserted or updated entry. obj is left in a (valid) unspecified state.
|
inline |
If this map contains an entry with a key equivalent to the specified key, assign the specified obj to the mapped_type of that entry. Otherwise, insert a new entry into the map. Return an iterator to the inserted or updated entry. obj is left in a (valid) unspecified state.
|
inline |
If this map contains an entry with a key equivalent to the specified key, assign the specified obj to the mapped_type of that entry. Otherwise, insert a new entry into the map. Return an iterator to the inserted or updated entry. obj is left in a (valid) unspecified state.
|
inline |
If this map contains an entry with a key equivalent to the specified key, assign the specified obj to the mapped_type of that entry, and return an iterator to that entry and false. Otherwise, insert a new entry into the map with the and return an iterator to that entry and true. obj is left in a (valid) unspecified state.
|
inline |
Return (a copy of) the binary key-equality functor that returns true if the value of two KEY objects are equivalent, and false otherwise.
|
inline |
Return the current ratio between the number of elements in this container and its capacity.
|
inline |
Return the maximum load factor allowed for this map.
max_load_factor(), that same insert operation will increase the capacity and rehash the entries of the container (see {Load Factor and Resizing}). Also note that the value returned by max_load_factor is implementation defined and cannot be changed by the user.
|
inline |
Assign to this object the value, hasher, and equality comparator of the specified rhs object, and return a reference providing modifiable access to this object. If this object and rhs use the same allocator the contents of rhs are moved (in constant time) to this object. rhs is left in a (valid) unspecified state.
|
inline |
Assign to this object the value, hasher, and equality functor of the specified rhs object, and return a reference providing modifiable access to this object.
|
inline |
Return a reference providing modifiable access to the mapped value associated with the specified key in this map. If this map does not already contain an element having key, insert an element with the key and a default-constructed VALUE, and return a reference to the newly mapped value. If key is movable, key is left in a (valid) unspecified state.
|
inline |
Return a reference providing modifiable access to the mapped value associated with the specified key in this map. If this map does not already contain an element having key, insert an element with the key and a default-constructed VALUE, and return a reference to the newly mapped value. If key is movable, key is left in a (valid) unspecified state.
| bsl::ostream & bdlc::FlatHashMap< KEY, VALUE, HASH, EQUAL >::print | ( | bsl::ostream & | stream, |
| int | level = 0, |
||
| int | spacesPerLevel = 4 |
||
| ) | const |
Format this object to the specified output stream at the (absolute value of) the optionally specified indentation level, and return a reference to the modifiable stream. If level is specified, optionally specify spacesPerLevel, the number of spaces per indentation level for this and all of its nested objects. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect.
|
inline |
Change the capacity of this map to at least the specified minimumCapacity, and redistribute all the contained elements into a new sequence of entries according to their hash values. If 0 == minimumCapacity and 0 == size(), the map is returned to the default constructed state. After this call, load_factor() will be less than or equal to max_load_factor() and all iterators, pointers, and references to elements of this map are invalidated.
|
inline |
Change the capacity of this map to at least a capacity that can accommodate the specified numEntries (accounting for the load factor invariant), and redistribute all the contained elements into a new sequence of entries according to their hash values. If 0 == numEntries and 0 == size(), the map is returned to the default constructed state. After this call, load_factor() will be less than or equal to max_load_factor() and all iterators, pointers, and references to elements of this map are invalidated.
|
inline |
Remove all elements from this map and release all memory from this map, returning the map to the default constructed state.
|
inline |
Return the number of elements in this map.
|
inline |
Exchange the value of this object as well as its hasher and equality functors with those of the specified other object.
other.
|
friend |
Return true if the specified lhs and rhs objects do not have the same value, and false otherwise. Two FlatHashMap objects do not have the same value if their sizes are different or one contains an element equal to no element of the other. The hash and equality functors are not involved in the comparison.
|
friend |
Return true if the specified lhs and rhs objects have the same value, and false otherwise. Two FlatHashMap objects have the same value if their sizes are the same and each element contained in one is equal to an element of the other. The hash and equality functors are not involved in the comparison.
|
friend |