62 template <
typename T>
struct Robin {
63 std::vector<detail::RobinSlNode<T>>
cycle;
73 auto* slptr = &this->cycle[num_parts - 1];
75 for (
auto& sl : this->
cycle) {
Robin Hood iterator for cycle iteration.
Definition robin.hpp:62
Robin(T num_parts)
Construct a new Robin cycle.
Definition robin.hpp:72
auto exclude(T from_part) const -> detail::RobinIterableWrapper< T >
Get an iterable that excludes a specific element.
Definition robin.hpp:92
std::vector< detail::RobinSlNode< T > > cycle
Definition robin.hpp:63
Wrapper to make the linked list iterable.
Definition robin.hpp:44
auto end() const -> RobinIterator< T >
Definition robin.hpp:49
auto begin() const -> RobinIterator< T >
Definition robin.hpp:48
const detail::RobinSlNode< T > * node
Definition robin.hpp:45
Iterator for the Robin Hood linked list.
Definition robin.hpp:28
auto operator!=(const RobinIterator &other) const -> bool
Definition robin.hpp:30
auto operator++() -> RobinIterator &
Definition robin.hpp:32
auto operator*() const -> const T &
Definition robin.hpp:36
const RobinSlNode< T > * cur
Definition robin.hpp:29
auto operator==(const RobinIterator &other) const -> bool
Definition robin.hpp:31
A node in the Robin Hood hashing linked list.
Definition robin.hpp:18
T key
Definition robin.hpp:20
RobinSlNode * next
Definition robin.hpp:19