IOSS 2.0

Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst > Class Template Reference

`#include <hopscotch_hash.h>`

## Public Types
using | iterator_category = std::forward_iterator_tag
using | value_type = const typename hopscotch_hash::value_type
using | difference_type = std::ptrdiff_t
using | reference = value_type &
using | pointer = value_type *

## Public Member Functions
| hopscotch_iterator () noexcept
| hopscotch_iterator (const hopscotch_iterator< false > &other) noexcept
const hopscotch_hash::key_type & | key () const
template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>
std::conditional< IsConst, const typename U::value_type &, typename U::value_type & >::type | value () const
reference | operator * () const
pointer | operator-> () const
hopscotch_iterator & | operator++ ()
hopscotch_iterator | operator++ (int)

## Private Types
using | iterator_bucket = typename std::conditional< IsConst, typename hopscotch_hash::const_iterator_buckets, typename hopscotch_hash::iterator_buckets >::type
using | iterator_overflow = typename std::conditional< IsConst, typename hopscotch_hash::const_iterator_overflow, typename hopscotch_hash::iterator_overflow >::type

## Private Member Functions
| hopscotch_iterator (iterator_bucket buckets_iterator, iterator_bucket buckets_end_iterator, iterator_overflow overflow_iterator) noexcept

## Private Attributes
iterator_bucket | m_buckets_iterator
iterator_bucket | m_buckets_end_iterator
iterator_overflow | m_overflow_iterator

## Friends
class | hopscotch_hash
bool | operator== (const hopscotch_iterator &lhs, const hopscotch_iterator &rhs)
bool | operator!= (const hopscotch_iterator &lhs, const hopscotch_iterator &rhs)

## Detailed Description

### template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>
class tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >

The `operator*()` and `operator->()` methods return a const reference and const pointer respectively to the stored value type.

In case of a map, to get a modifiable reference to the value associated to a key (the `.second` in the stored pair), you have to call `value()`.

## Member Typedef Documentation

## ◆ difference_type

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::difference_type = std::ptrdiff_t

## ◆ iterator_bucket

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::iterator_bucket = typename std::conditional<IsConst, typename hopscotch_hash::const_iterator_buckets, typename hopscotch_hash::iterator_buckets>::type
| private

## ◆ iterator_category

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::iterator_category = std::forward_iterator_tag

## ◆ iterator_overflow

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::iterator_overflow = typename std::conditional<IsConst, typename hopscotch_hash::const_iterator_overflow, typename hopscotch_hash::iterator_overflow>::type
| private

## ◆ pointer

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::pointer = value_type *

## ◆ reference

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::reference = value_type &

## ◆ value_type

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

using tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::value_type = const typename hopscotch_hash::value_type

## Constructor & Destructor Documentation

## ◆ hopscotch_iterator() [1/3]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::hopscotch_iterator | ( | iterator_bucket | buckets_iterator,
|  | iterator_bucket | buckets_end_iterator,
|  | iterator_overflow | overflow_iterator
| ) |  |
| inline private noexcept

## ◆ hopscotch_iterator() [2/3]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::hopscotch_iterator | ( |  | ) |
| inline noexcept

## ◆ hopscotch_iterator() [3/3]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::hopscotch_iterator | ( | const hopscotch_iterator< false > & | other | ) |
| inline noexcept

## Member Function Documentation

## ◆ key()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

const hopscotch_hash::key_type& tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::key | ( |  | ) | const
| inline

## ◆ operator *()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

reference tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::operator * | ( |  | ) | const
| inline

## ◆ operator++() [1/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

hopscotch_iterator& tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::operator++ | ( |  | ) |
| inline

## ◆ operator++() [2/2]

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

hopscotch_iterator tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::operator++ | ( | int |  | ) |
| inline

## ◆ operator->()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

pointer tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::operator-> | ( |  | ) | const
| inline

## ◆ value()

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>
template<class U = ValueSelect, typename std::enable_if< has_mapped_type< U >::value >::type * = nullptr>

std::conditional<IsConst, const typename U::value_type &, typename U::value_type &>::type tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::value | ( |  | ) | const
| inline

## Friends And Related Function Documentation

## ◆ hopscotch_hash

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

friend class hopscotch_hash
| friend

## ◆ operator!=

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

bool operator!= | ( | const hopscotch_iterator< IsConst > & | lhs,
|  | const hopscotch_iterator< IsConst > & | rhs
| ) |  |
| friend

## ◆ operator==

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

bool operator== | ( | const hopscotch_iterator< IsConst > & | lhs,
|  | const hopscotch_iterator< IsConst > & | rhs
| ) |  |
| friend

## Member Data Documentation

## ◆ m_buckets_end_iterator

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

iterator_bucket tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::m_buckets_end_iterator
| private

## ◆ m_buckets_iterator

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

iterator_bucket tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::m_buckets_iterator
| private

## ◆ m_overflow_iterator

template<class ValueType, class KeySelect, class ValueSelect, class Hash, class KeyEqual, class Allocator, unsigned int NeighborhoodSize, bool StoreHash, class GrowthPolicy, class OverflowContainer>
template<bool IsConst>

iterator_overflow tsl::detail_hopscotch_hash::hopscotch_hash< ValueType, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, GrowthPolicy, OverflowContainer >::hopscotch_iterator< IsConst >::m_overflow_iterator
| private

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

- src/hash/hopscotch_hash.h