Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions

bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE > Class Template Reference

#include <bslstl_hashtablebucketiterator.h>

List of all members.

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)
HashTableBucketIteratoroperator= (const NonConstIter &rhs)
HashTableBucketIteratoroperator++ ()
reference operator* () const
pointer operator-> () const
bslalg::BidirectionalLinknode () const
const bslalg::HashTableBucketbucket () const

template<class VALUE_TYPE, class DIFFERENCE_TYPE>
class bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >


Member Typedef Documentation

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
typedef NonConstType bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::value_type
template<class VALUE_TYPE , class DIFFERENCE_TYPE >
typedef DIFFERENCE_TYPE bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::difference_type
template<class VALUE_TYPE , class DIFFERENCE_TYPE >
typedef VALUE_TYPE* bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::pointer
template<class VALUE_TYPE , class DIFFERENCE_TYPE >
typedef VALUE_TYPE& bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::reference
template<class VALUE_TYPE , class DIFFERENCE_TYPE >
typedef std::forward_iterator_tag bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::iterator_category

Constructor & Destructor Documentation

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::HashTableBucketIterator (  ) 

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.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::HashTableBucketIterator ( const bslalg::HashTableBucket bucket  )  [explicit]

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. Note that this constructor is an implementation detail and is not part of the C++ standard.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::HashTableBucketIterator ( bslalg::BidirectionalLink node,
const bslalg::HashTableBucket bucket 
) [explicit]

Create an iterator referring to the specified bucket, initially pointing to the specified node in that bucket. The behavior is undefined unless node is part of bucket, or node is 0. Note that this constructor is an implementation detail and is not part of the C++ standard.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::HashTableBucketIterator ( const NonConstIter original  ) 

IMPLICIT: Create an iterator at the same position as the specified original iterator. Note that this constructor enables converting from modifiable to const iterator types.


Member Function Documentation

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
HashTableBucketIterator& bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::operator= ( const NonConstIter rhs  ) 

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. Note that this method may be the copy-assignment operator (inhibiting the implicit declaration of a copy-assignment operator above), or may be an additional overload.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
HashTableBucketIterator& bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::operator++ (  ) 

Move this iterator to the next element in the hash table bucket and return a reference providing modifiable access to this iterator. The behavior is undefined unless the iterator refers to a valid (not yet erased) element in a bucket. Note that this iterator is invalidated when the underlying hash table is rehashed.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
reference bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::operator* (  )  const

Return a reference providing modifiable access to the element (of the template parameter VALUE_TYPE) at which this iterator is positioned. The behavior is undefined unless the iterator refers to a valid (not yet erased) element in a hash table bucket. Note that this iterator is invalidated when the underlying hash table is rehashed.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
pointer bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::operator-> (  )  const

Return the address of the element (of the template parameter VALUE_TYPE) at which this iterator is positioned. The behavior is undefined unless the iterator refers to a valid (not yet erased) element a hash table bucket. Note that this iterator is invalidated when the underlying hash table is rehashed.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
bslalg::BidirectionalLink* bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::node (  )  const

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. Note that this method is an implementation detail and is not part of the C++ standard.

template<class VALUE_TYPE , class DIFFERENCE_TYPE >
const bslalg::HashTableBucket* bslstl::HashTableBucketIterator< VALUE_TYPE, DIFFERENCE_TYPE >::bucket (  )  const

Return the address of the hash table bucket referred to by this iterator. Note that this method is an implementation detail intended for debugging purposes only, and is not part of the C++ standard.


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