MADNESS 0.10.1
|
iterator for hash More...
#include <worldhashmap.h>
Public Types | |
typedef std::conditional< std::is_const< hashT >::value, typenamestd::add_const< typenamehashT::datumT >::type, typenamehashT::datumT >::type | datumT |
typedef std::ptrdiff_t | difference_type |
typedef std::conditional< std::is_const< hashT >::value, typenamestd::add_const< typenamehashT::entryT >::type, typenamehashT::entryT >::type | entryT |
typedef std::forward_iterator_tag | iterator_category |
typedef datumT * | pointer |
typedef datumT & | reference |
typedef datumT | value_type |
Public Member Functions | |
HashIterator () | |
Makes invalid iterator. | |
HashIterator (const HashIterator &other) | |
Copy constructor. | |
template<class otherHashT > | |
HashIterator (const HashIterator< otherHashT > &other) | |
Implicit conversion of another hash type to this hash type. | |
HashIterator (hashT *h, bool begin) | |
Makes begin/end iterator. | |
HashIterator (hashT *h, int bin, entryT *entry) | |
Makes iterator to specific entry. | |
void | advance (int n) |
Only positive increments are supported. | |
int | distance (const HashIterator &other) const |
Difference between iterators only supported for this=start and other=end. | |
bool | operator!= (const HashIterator &a) const |
reference | operator* () const |
HashIterator & | operator++ () |
HashIterator | operator++ (int) |
pointer | operator-> () const |
bool | operator== (const HashIterator &a) const |
Private Member Functions | |
void | next_non_null_entry () |
If the entry is null (end of current bin) finds next non-empty bin. | |
Private Attributes | |
int | bin |
entryT * | entry |
hashT * | h |
Friends | |
template<class otherHashT > | |
class | HashIterator |
iterator for hash
typedef std::conditional<std::is_const<hashT>::value,typenamestd::add_const<typenamehashT::datumT>::type,typenamehashT::datumT>::type madness::Hash_private::HashIterator< hashT >::datumT |
typedef std::ptrdiff_t madness::Hash_private::HashIterator< hashT >::difference_type |
typedef std::conditional<std::is_const<hashT>::value,typenamestd::add_const<typenamehashT::entryT>::type,typenamehashT::entryT>::type madness::Hash_private::HashIterator< hashT >::entryT |
typedef std::forward_iterator_tag madness::Hash_private::HashIterator< hashT >::iterator_category |
typedef datumT* madness::Hash_private::HashIterator< hashT >::pointer |
typedef datumT& madness::Hash_private::HashIterator< hashT >::reference |
typedef datumT madness::Hash_private::HashIterator< hashT >::value_type |
|
inline |
Makes invalid iterator.
|
inline |
Makes begin/end iterator.
References madness::Hash_private::HashIterator< hashT >::next_non_null_entry().
|
inline |
Makes iterator to specific entry.
|
inline |
Copy constructor.
|
inline |
Implicit conversion of another hash type to this hash type.
This allows implicit conversion from hash types to const hash types.
|
inline |
Only positive increments are supported.
This exists to support splitting of range for parallel iteration.
References madness::Hash_private::HashIterator< hashT >::bin, madness::Hash_private::HashIterator< hashT >::h, MADNESS_ASSERT, madness::Hash_private::entry< keyT, valueT >::next, and madness::Hash_private::HashIterator< hashT >::next_non_null_entry().
Referenced by std::advance().
|
inline |
Difference between iterators only supported for this=start and other=end.
This exists to support construction of range for parallel iteration over the entire container.
References madness::Hash_private::HashIterator< hashT >::h, and MADNESS_ASSERT.
Referenced by std::distance().
|
inlineprivate |
If the entry is null (end of current bin) finds next non-empty bin.
References madness::Hash_private::HashIterator< hashT >::bin, and madness::Hash_private::HashIterator< hashT >::h.
Referenced by madness::Hash_private::HashIterator< hashT >::HashIterator(), madness::Hash_private::HashIterator< hashT >::advance(), and madness::Hash_private::HashIterator< hashT >::operator++().
|
inline |
References madness::Hash_private::entry< keyT, valueT >::entry(), and a.
|
inline |
References madness::Hash_private::entry< keyT, valueT >::datum, and MADNESS_ASSERT.
|
inline |
|
inline |
|
inline |
References madness::Hash_private::entry< keyT, valueT >::datum, and MADNESS_ASSERT.
|
inline |
References madness::Hash_private::entry< keyT, valueT >::entry(), and a.
|
private |
|
private |
|
private |