SourcePro® 2023.1 |
SourcePro® API Reference Guide |
Maintains a collection of mappings between two types K
and V
, implemented as a hash table of std::pair<const K,V> instances where multiple instances of the same K
are allowed.
More...
#include <rw/stdex/hashmmap.h>
Public Types | |
typedef impl_type::allocator_type | allocator_type |
typedef impl_type::const_iterator | const_iterator |
typedef impl_type::const_pointer | const_pointer |
typedef impl_type::const_reference | const_reference |
typedef impl_type::difference_type | difference_type |
typedef impl_type::hasher | hasher |
typedef impl_type::iterator | iterator |
typedef impl_type::key_equal | key_equal_type |
typedef impl_type::hasher | key_hash_type |
typedef impl_type::key_type | key_type |
typedef impl_type::key_policy::mapped_type | mapped_type |
typedef impl_type::pointer | pointer |
typedef impl_type::reference | reference |
typedef impl_type::size_type | size_type |
typedef impl_type::value_type | value_type |
Related Functions | |
(Note that these are not member functions.) | |
template<class K , class V , class Hash , class EQ , class A > | |
bool | operator!= (const rw_hashmultimap< K, V, Hash, EQ, A > &lhs, const rw_hashmultimap< K, V, Hash, EQ, A > &rhs) |
template<class K , class V , class Hash , class EQ , class A > | |
bool | operator== (const rw_hashmultimap< K, V, Hash, EQ, A > &lhs, const rw_hashmultimap< K, V, Hash, EQ, A > &rhs) |
Class rw_hashmultimap maintains a collection mapping between instances of K
(the key) and V
(the value), implemented as a hash table of std::pair<const K,V> in which there may be more than one instance of any given K
. Since this is a value-based collection, objects are copied into and out of the collection. As with all classes that meet the ANSI associative container specification, rw_hashmultimap provides for iterators that reference its elements. Since the contents of rw_hashset are in psuedo-random order, the only iterator ranges that will usually make sense are the results of calling equal_range(), and the entire range from begin() to end().
Hash
must provide a const
function that takes a single argument convertible to type K
and returns a value of type size_t
.
Key equality is determined by an equality function of type EQ
, which takes two arguments convertible to type K
and returns a value of type bool
.
typedef impl_type::allocator_type rw_hashmultimap< K, V, Hash, EQ, A >::allocator_type |
A type representing the allocator type for the container.
typedef impl_type::const_iterator rw_hashmultimap< K, V, Hash, EQ, A >::const_iterator |
A type that provides a const
forward iterator over the elements in the container.
typedef impl_type::const_pointer rw_hashmultimap< K, V, Hash, EQ, A >::const_pointer |
A type that provides a const
pointer to an element in the container.
typedef impl_type::const_reference rw_hashmultimap< K, V, Hash, EQ, A >::const_reference |
A type that provides a const
reference to an element in the container.
typedef impl_type::difference_type rw_hashmultimap< K, V, Hash, EQ, A >::difference_type |
A signed integral type used to indicate the distance between two valid iterators on the same container.
typedef impl_type::hasher rw_hashmultimap< K, V, Hash, EQ, A >::hasher |
A type representing the hash function.
typedef impl_type::iterator rw_hashmultimap< K, V, Hash, EQ, A >::iterator |
A type that provides a forward iterator over the elements in the container.
typedef impl_type::key_equal rw_hashmultimap< K, V, Hash, EQ, A >::key_equal_type |
A type representing the key equality function.
typedef impl_type::hasher rw_hashmultimap< K, V, Hash, EQ, A >::key_hash_type |
A type representing the hash function.
typedef impl_type::key_type rw_hashmultimap< K, V, Hash, EQ, A >::key_type |
A type representing the type of keys used in the container.
typedef impl_type::key_policy::mapped_type rw_hashmultimap< K, V, Hash, EQ, A >::mapped_type |
A type representing the type of mapped values used in the container.
typedef impl_type::pointer rw_hashmultimap< K, V, Hash, EQ, A >::pointer |
A type that provides a pointer to an element in the container.
typedef impl_type::reference rw_hashmultimap< K, V, Hash, EQ, A >::reference |
A type that provides a reference to an element in the container.
typedef impl_type::size_type rw_hashmultimap< K, V, Hash, EQ, A >::size_type |
An unsigned integral type used for counting the number of elements in the container.
typedef impl_type::value_type rw_hashmultimap< K, V, Hash, EQ, A >::value_type |
A type representing the value stored in the container.
|
inline |
Constructs an empty rw_hashmultimap with cap buckets, using h as the hash function object, and eq as the equality function object.
|
inline |
Constructs an rw_hashmultimap that is a copy of other. Each element from other is copied into self.
|
inline |
Move constructor. The constructed rw_hashmultimap takes ownership of the data owned by other.
|
inline |
Constructs an rw_hashmultimap containing a copy of the pair elements in the range [first, last). The rw_hashmultimap instance has cap buckets, uses h as its hash function object, and eq as its equality function object.
InputIterator
is an input iterator type that points to elements that are convertible to value_type objects.
|
inline |
The destructor releases the memory used by the container's implementation.
|
inline |
Returns an iterator referring to the first element in the container.
If the container is empty, returns end().
|
inline |
Returns an iterator referring to the first element in the container.
If the container is empty, returns end().
|
inline |
Returns the number of buckets in the container.
|
inline |
Returns an iterator referring to the first element in the container.
If the container is empty, returns end().
|
inline |
Returns an iterator referring to the element after the last element in the container.
Dereferencing the iterator returned by this function results in undefined behavior.
|
inline |
Removes all items in the container.
|
inline |
Returns the number of items in self whose key compares equal to key according to the associated equality function object.
|
inline |
Returns true
if there are no items in the container.
|
inline |
Returns an iterator referring to the element after the last element in the container.
Dereferencing the iterator returned by this function results in undefined behavior.
|
inline |
Returns an iterator referring to the element after the last element in the container.
Dereferencing the iterator returned by this function results in undefined behavior.
|
inline |
Returns true
if the container and rhs have the same number of elements, and for each value_type in lhs, there is a value_type in rhs that has a first part (the key) for which the equality function object returns true
. The second part (the value) of the pair is not compared.
|
inline |
Returns the bounds of the subrange representing all values in the container whose key compares equal to key according to the associated equality function object. If no items in the container compare equal to key, returns end() for both iterators.
|
inline |
Returns the bounds of the subrange representing all values in the container whose key compares equal to key according to the associated equality function object. If no items in the container compare equal to key, returns end() for both iterators.
|
inline |
Removes each item in the container that compares equal to key according to the equality function object. Returns the number of items that were removed.
|
inline |
Removes the element referenced by iter and returns an iterator referencing the next element. If iter does not reference an item in self, the result is undefined.
|
inline |
Removes each element in the range [first, last). Returns an iterator referencing last. If first does not reference an item in self (and if first and last are not equal), the behavior is undefined.
|
inline |
Returns the ratio of the number of items in the container to the number of buckets.
|
inline |
Returns the first item in self whose key compares equal to key according to the associated equality function object. If no items in the container compare equal to key, returns end().
|
inline |
Returns the first item in self whose key compares equal to key according to the associated equality function object. If no items in the container compare equal to key, returns end().
|
inline |
Inserts a copy of val into the container. Returns an iterator to the new item, along with the status true
.
|
inline |
Inserts a copy of val into the container. Returns an iterator to the new item, along with the status true
.
The parameter hint is ignored.
|
inline |
Inserts val into the container. Returns an iterator to the new item, along with the status true
.
|
inline |
Inserts val into the container. Returns an iterator to the new item, along with the status true
.
The parameter hint is ignored.
|
inline |
For each value in the range [first, last), inserts a copy of the value into self. Returns the number of elements inserted.
InputIterator
is an input iterator type that points to elements that are convertible to value_type objects.
|
inline |
Equivalent to equal_range(key).first
.
|
inline |
Equivalent to equal_range(key).first
.
|
inline |
Replaces the contents of self with copies of the contents of rhs. The capacity, hash function object and equality function object are replaced by the respective objects from rhs.
|
inline |
Replaces the contents of self with the contents moved from rhs. The capacity, hash function object and equality function objects are moved from the respective objects in rhs.
|
inline |
Sets the number of buckets to cap. Each item in the container is rehashed according to the new number of buckets.
|
inline |
Returns the number of items in the container.
|
inline |
Exchanges the contents of self with other, including the Hash
and EQ
objects. This method does not copy or destroy any of the items exchanged but exchanges the underlying hash tables.
|
inline |
Equivalent to equal_range(key).second
.
|
inline |
Equivalent to equal_range(key).second
.
|
related |
Equivalent to !(lhs == rhs)
.
|
related |
Returns true
if lhs and rhs have the same number of elements, and for each item in lhs, there is an item in rhs whose first part (the key) compares equal according to the equality function object and whose second part (the value) compares equal according to operator==().
Copyright © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved. |