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 |
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 |
|
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.
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 |