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