|
BDE 4.14.0 Production release
|
#include <bslstl_hashtableiterator.h>
Public Types | |
| typedef NcType | value_type |
| typedef DIFFERENCE_TYPE | difference_type |
| typedef VALUE_TYPE * | pointer |
| typedef VALUE_TYPE & | reference |
| typedef bsl::forward_iterator_tag | iterator_category |
| Standard iterator defined types [24.4.2]. | |
Public Member Functions | |
| HashTableIterator () | |
| HashTableIterator (bslalg::BidirectionalLink *node) | |
| HashTableIterator (const NcIter &original) | |
| HashTableIterator (const HashTableIterator &original)=default | |
| HashTableIterator & | operator++ () |
| reference | operator* () const |
| pointer | operator-> () const |
| bslalg::BidirectionalLink * | node () const |
This class template implements an in-core value-semantic type that is an standard-conforming forward iterator (see section 24.2.5 [forward.iterators] of the C++11 standard) over a list of bslalg::BidirectionalLink objects. A HashTableIterator object provides access to values of the (template parameter) VALUE_TYPE, stored in a hash table composed of bslalg::BidirectionalLink nodes. The (template parameter) DIFFERENCE_TYPE determines the standard mandated difference_type of the iterator, without requiring access to the allocator-traits for the node.
| typedef DIFFERENCE_TYPE bslstl::HashTableIterator< VALUE_TYPE, DIFFERENCE_TYPE >::difference_type |
| typedef bsl::forward_iterator_tag bslstl::HashTableIterator< VALUE_TYPE, DIFFERENCE_TYPE >::iterator_category |
| typedef VALUE_TYPE* bslstl::HashTableIterator< VALUE_TYPE, DIFFERENCE_TYPE >::pointer |
| typedef VALUE_TYPE& bslstl::HashTableIterator< VALUE_TYPE, DIFFERENCE_TYPE >::reference |
| typedef NcType bslstl::HashTableIterator< VALUE_TYPE, DIFFERENCE_TYPE >::value_type |
|
inline |
Create a default-constructed iterator referring to an empty list of nodes. All default-constructed iterators are non-dereferenceable and refer to the same empty list.
|
inlineexplicit |
Create an iterator referring to the specified node. The behavior is undefined unless node is of the type bslalg::BidirectionalNode<VALUE_TYPE>, which is derived from bslalg::BidirectionalLink. Note that this constructor is an implementation detail and is not part of the C++ standard.
|
inline |
Create an iterator at the same position as the specified original iterator. Note that this constructor enables converting from modifiable to const iterator types.
|
default |
Create an iterator having the same value as the specified original. Note that this operation is either defined by the constructor taking NcIter (if NcType is the same as VALUE_TYPE), or generated automatically by the compiler. Also note that this constructor cannot be defined explicitly (without using bsls::enableif) to avoid a duplicate declaration when NcType is the same as VALUE_TYPE.
|
inline |
Return the address of the node at which this iterator is positioned in the list, or 0 if this iterator is positioned after the end of a list. Note that this method is an implementation detail and is not part of the C++ standard.
|
inline |
Return a reference providing modifiable access to the value (of the template parameter VALUE_TYPE) of the node at which this iterator is positioned. The behavior is undefined unless the iterator refers to a valid (not yet erased) node the list.
|
inline |
Move this iterator to the next node in the list and return a reference providing modifiable access to this iterator. The behavior is undefined unless the iterator refers to a valid (not yet erased) node in the list.
|
inline |
Return the address of the value (of the template parameter VALUE_TYPE) of the element at which this iterator is positioned. The behavior is undefined unless the iterator refers to a valid (not yet erased) node the list.