|
BDE 4.39.x Production Release
|
#include <bslstl_hashtablebucketiterator.h>
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 referred to by a single bslalg::HashTableBucket object. A HashTableBucketIterator object provides access to values of the (template parameter) VALUE_TYPE, stored in a bucket of a hash table. The (template parameter) DIFFERENCE_TYPE determines the standard mandated difference_type of the iterator, without requiring access to the allocator-traits for the node.
Public Types | |
| typedef NonConstType | value_type |
| typedef DIFFERENCE_TYPE | difference_type |
| typedef VALUE_TYPE * | pointer |
| typedef VALUE_TYPE & | reference |
| typedef std::forward_iterator_tag | iterator_category |
Public Member Functions | |
| HashTableBucketIterator () | |
| HashTableBucketIterator (const bslalg::HashTableBucket *bucket) | |
| HashTableBucketIterator (bslalg::BidirectionalLink *node, const bslalg::HashTableBucket *bucket) | |
| HashTableBucketIterator (const NonConstIter &original) | |
| HashTableBucketIterator (const HashTableBucketIterator &original)=default | |
| ~HashTableBucketIterator ()=default | |
| HashTableBucketIterator & | operator= (const HashTableBucketIterator &) HashTableBucketIterator &operator |
| HashTableBucketIterator & | operator++ () |
| reference | operator* () const |
| pointer | operator-> () const |
| bslalg::BidirectionalLink * | node () const |
| const bslalg::HashTableBucket * | bucket () const |
| typedef DIFFERENCE_TYPE bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::difference_type |
| typedef std::forward_iterator_tag bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::iterator_category |
Standard iterator defined types [24.4.2].
| typedef VALUE_TYPE* bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::pointer |
| typedef VALUE_TYPE& bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::reference |
| typedef NonConstType bslstl::HashTableBucketIterator< 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 bucket, initially pointing to the first node in that bucket, or a past-the-end value if the bucket is empty.
|
inlineexplicit |
Create an iterator referring to the specified bucket, initially pointing to the specified node in that bucket.
node is part of bucket, or node is 0.
|
inline |
Create an iterator at the same position as the specified original iterator.
const iterator types.
|
default |
Create an iterator having the same value as the specified original.
NonConstIter (if NonConstType 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 NonConstType is the same as VALUE_TYPE.
|
default |
|
inline |
Return the address of the hash table bucket referred to by this iterator.
|
inline |
Return the address of the node holding the element at which this iterator is positioned, or 0 if this iterator is positioned after the end of a bucket.
|
inline |
Return a reference providing modifiable access to the element (of the template parameter VALUE_TYPE) at which this iterator is positioned.
|
inline |
Move this iterator to the next element in the hash table bucket and return a reference providing modifiable access to this iterator.
|
inline |
Return the address of the element (of the template parameter VALUE_TYPE) at which this iterator is positioned.
|
inline |
Copy the value of the specified rhs of another (compatible) HashTableBucketIterator type, (e.g., a mutable iterator of the same type) to this iterator. Return a reference to this modifiable object.