32 constexpr auto operator*() const noexcept -> const
Dllink<
size_t>& {
return *cur; }
35 return cur != other.cur;
39 return cur == other.cur;
57 std::vector<Dllink<size_t>>
cycle;
70 explicit RDllist(
size_t num_nodes,
bool reverse =
false) {
71 cycle.reserve(3 * num_nodes);
72 for (
size_t k = 0; k < num_nodes; ++k) {
79 for (
auto& dl1 :
cycle) {
85 for (
auto& dl1 :
cycle) {
doubly linked node (that may also be a "head" a list)
Definition dllink.hpp:28
Dllink * prev
Definition dllink.hpp:31
Dllink * next
Definition dllink.hpp:30
Iterator for RDllist circular doubly-linked list.
Definition rdllist.hpp:19
constexpr auto end() const noexcept -> RDllIterator
Definition rdllist.hpp:45
constexpr auto operator++() noexcept -> RDllIterator &
Definition rdllist.hpp:27
constexpr auto operator==(const RDllIterator &other) const noexcept -> bool
Definition rdllist.hpp:38
constexpr auto operator*() const noexcept -> const Dllink< size_t > &
Definition rdllist.hpp:32
constexpr auto operator!=(const RDllIterator &other) const noexcept -> bool
Definition rdllist.hpp:34
constexpr auto begin() const noexcept -> RDllIterator
Definition rdllist.hpp:43
constexpr RDllIterator(Dllink< size_t > *node) noexcept
Definition rdllist.hpp:25
Circular doubly-linked list implementation.
Definition rdllist.hpp:55
auto begin() const -> RDllIterator
Get an iterator to the beginning of the list (const).
Definition rdllist.hpp:139
std::vector< Dllink< size_t > > cycle
Storage for all list nodes.
Definition rdllist.hpp:57
auto operator[](size_t k) -> Dllink< size_t > &
Access a node by index (mutable).
Definition rdllist.hpp:99
auto from_node(size_t k) const -> RDllIterator
Get an iterator starting from a given node (const).
Definition rdllist.hpp:123
auto begin() -> RDllIterator
Get an iterator to the beginning of the list.
Definition rdllist.hpp:132
RDllist(size_t num_nodes, bool reverse=false)
Construct a new RDllist object.
Definition rdllist.hpp:70
auto operator[](size_t k) const -> const Dllink< size_t > &
Access a node by index (const).
Definition rdllist.hpp:107
auto from_node(size_t k) -> RDllIterator
Get an iterator starting from a given node (mutable).
Definition rdllist.hpp:115
Doubly-linked list node template class.