|
| | DualArrayList ()=default |
| | default constructs two empty lists
|
| |
| template<size_t N1> |
| | DualArrayList (const DualArrayList< T, N1 > &other) |
| | Copy constructs both lists like from the other dual list.
|
| |
| template<size_t N1> |
| DualArrayList & | operator= (const DualArrayList< T, N1 > &other) |
| | Copy assigns both lists like from the other dual list.
|
| |
| constexpr size_type | left_size () const |
| | Returns the size of the left list.
|
| |
| constexpr size_type | right_size () const |
| | Returns the size of the right list.
|
| |
| constexpr size_type | size () const |
| | Returns the combined size of both lists.
|
| |
| constexpr size_type | max_size () const |
| | Returns the maximal size - is the same for left and right.
|
| |
| constexpr size_type | left_capacity () const |
| | Returns the capacity of the left list.
|
| |
| constexpr size_type | right_capacity () const |
| | Returns the capacity of the right list.
|
| |
| constexpr size_type | reserve () const |
| | Returns the size of the reserve (aka.) number of free elements that has not been claimed by either list.
|
| |
| constexpr bool | left_empty () const |
| | Returns true if the left list is empty.
|
| |
| constexpr bool | right_empty () const |
| | returns true if the right list is empty
|
| |
| constexpr bool | empty () const |
| | returns true if both lists are empty
|
| |
| constexpr bool | full () const |
| | returns true if the lists are full, all elements have been taken by either side, no more elements can be emplaced.
|
| |
| constexpr pointer | data () |
| |
| constexpr const_pointer | data () const |
| |
| constexpr const_pointer | cdata () const |
| |
| constexpr left_iterator | left_begin () |
| | returns an iterator to the beginning of the left list
|
| |
| constexpr left_const_iterator | left_begin () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr left_const_iterator | left_cbegin () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr right_iterator | right_begin () |
| | returns an iterator ot the beginning of the right list
|
| |
| constexpr right_const_iterator | right_begin () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr right_const_iterator | right_cbegin () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr left_iterator | left_end () |
| | returns an iterator past the end of the left list
|
| |
| constexpr left_const_iterator | left_end () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr left_const_iterator | left_cend () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr right_iterator | right_end () |
| | returns an iterator past the end of the right list
|
| |
| constexpr right_const_iterator | right_end () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr right_const_iterator | right_cend () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr left_range | left_subrange () |
| | returns the left list as a subrange
|
| |
| constexpr left_const_range | left_subrange () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr left_const_range | left_csubrange () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr right_range | right_subrange () |
| | returns the right list as a subrange
|
| |
| constexpr right_const_range | right_subrange () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr right_const_range | right_csubrange () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr reference | left_front () |
| | Returns a reference of the first element in the left list.
|
| |
| constexpr const_reference | left_front () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr reference | left_back () |
| | Returns a reference of the last element in the left list.
|
| |
| constexpr const_reference | left_back () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr reference | right_front () |
| | Returns a reference of the first element in the right list.
|
| |
| constexpr const_reference | right_front () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| constexpr reference | right_back () |
| | Returns a reference of the last element in the right list.
|
| |
| constexpr const_reference | right_back () const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr reference | left_at (const UInt i) |
| | Returns a reference to the element in the left list at the position with the given index.
|
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr const_reference | left_at (const UInt i) const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr reference | right_at (const UInt i) |
| | Returns a reference to the element in the right list at the position with the given index.
|
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr const_reference | right_at (const UInt i) const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr reference | left_at (SInt si) |
| | Returns a reference to the element in the left list at the wrapped position with the given index.
|
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr const_reference | left_at (const SInt si) const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr reference | right_at (SInt si) |
| | Returns a reference to the element in the right list at the wrapped position with the given index.
|
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr const_reference | right_at (const SInt si) const |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| ArrayList< T, N > | left_at (const ArrayList< bool, N > &mask) const |
| | Masked indexing of the left list.
|
| |
| ArrayList< T, N > | right_at (const ArrayList< bool, N > &mask) const |
| | Masked indexing of the right list.
|
| |
template<class Int>
requires std::is_integral_v<Int> |
| ArrayList< T, N > | left_at (const ArrayList< Int, N > &indices) const |
| | constructs a list of from the left list at the provided list of indices
|
| |
template<class Int>
requires std::is_integral_v<Int> |
| ArrayList< T, N > | right_at (const ArrayList< Int, N > &indices) const |
| | constructs a list of from the right list at the provided list of indices
|
| |
| template<class... Args> |
| reference | left_emplace_back (Args &&... args) |
| | emplaces (aka. pushes) an element to the back of the left list
|
| |
| template<class... Args> |
| reference | right_emplace_back (Args &&... args) |
| | emplaces (aka. pushes) an element to the back of the right list
|
| |
| void | left_clear () |
| | clears the left list
|
| |
| void | right_clear () |
| | clears the right list
|
| |
| void | clear () |
| | clears both lists
|
| |
| template<std::convertible_to< T > Ta> |
| void | left_append (const size_type count, const Ta &value) |
| | appends value count many times to the left list
|
| |
| template<std::convertible_to< T > Ta> |
| void | right_append (const size_type count, const Ta &value) |
| | appends value count many times to the right list
|
| |
| template<std::convertible_to< T > Ta> |
| void | left_assign (const size_type count, const Ta &value) |
| | assigns a value count many times to the left list.
|
| |
| template<std::convertible_to< T > Ta> |
| void | right_assign (const size_type count, const Ta &value) |
| | assigns a value count many times to the right list.
|
| |
template<std::forward_iterator Itr>
requires std::convertible_to<typename std::iterator_traits<Itr>::value_type, T> |
| void | left_append (Itr first, Itr last) |
| | appends a range of elements defined by foreward iterators using the closed-open principle [first, last)
|
| |
template<std::forward_iterator Itr>
requires std::convertible_to<typename std::iterator_traits<Itr>::value_type, T> |
| void | right_append (Itr first, Itr last) |
| |
template<std::forward_iterator Itr>
requires std::convertible_to<typename std::iterator_traits<Itr>::value_type, T> |
| void | left_assign (Itr first, Itr last) |
| |
template<std::forward_iterator Itr>
requires std::convertible_to<typename std::iterator_traits<Itr>::value_type, T> |
| void | right_assign (Itr first, Itr last) |
| |
| template<std::convertible_to< T > Ta> |
| void | left_append (std::initializer_list< Ta > ilist) |
| |
| template<std::convertible_to< T > Ta> |
| void | right_append (std::initializer_list< Ta > ilist) |
| |
| template<std::convertible_to< T > Ta> |
| void | left_assign (std::initializer_list< Ta > ilist) |
| |
| template<std::convertible_to< T > Ta> |
| void | right_assign (std::initializer_list< Ta > ilist) |
| |
| template<std::ranges::forward_range Range> |
| void | left_append (const Range &range) |
| |
| template<std::ranges::forward_range Range> |
| void | right_append (const Range &range) |
| |
| template<std::ranges::forward_range Range> |
| void | left_assign (const Range &range) |
| |
| template<std::ranges::forward_range Range> |
| void | right_assign (const Range &range) |
| |
| template<size_t N1> |
| void | assign (const DualArrayList< T, N1 > &other) |
| |
| constexpr size_type | left_to_index (const left_const_iterator pos) const |
| |
| constexpr size_type | right_to_index (const right_const_iterator pos) const |
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr left_iterator | left_to_iterator (const UInt pos) |
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr right_iterator | right_to_iterator (const UInt pos) |
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr left_iterator | left_to_iterator (const SInt pos) |
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr right_iterator | right_to_iterator (const SInt pos) |
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr left_const_iterator | left_to_iterator (const UInt pos) const |
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr right_const_iterator | right_to_iterator (const UInt pos) const |
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr left_const_iterator | left_to_iterator (const SInt pos) const |
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr right_const_iterator | right_to_iterator (const SInt pos) const |
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr left_const_iterator | left_to_const_iterator (const UInt pos) const |
| |
template<class UInt>
requires std::is_unsigned_v<UInt> |
| constexpr right_const_iterator | right_to_const_iterator (const UInt pos) const |
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr left_const_iterator | left_to_const_iterator (const SInt pos) const |
| |
template<class SInt>
requires std::is_signed_v<SInt> |
| constexpr right_const_iterator | right_to_const_iterator (const SInt pos) const |
| |
| constexpr left_iterator | left_unconst (const left_const_iterator pos) |
| |
| constexpr right_iterator | right_unconst (const right_const_iterator pos) |
| |
| template<std::convertible_to< T > Ta> |
| left_iterator | left_insert (const left_const_iterator pos, const Ta &value) |
| |
| template<std::convertible_to< T > Ta> |
| right_iterator | right_insert (const right_const_iterator pos, const Ta &value) |
| |
| template<std::convertible_to< T > Ta> |
| left_iterator | left_insert (const left_const_iterator pos, Ta &&value) |
| |
| template<std::convertible_to< T > Ta> |
| right_iterator | right_insert (const right_const_iterator pos, Ta &&value) |
| |
template<std::forward_iterator Itr>
requires std::convertible_to<typename std::iterator_traits<Itr>::value_type, T> |
| left_iterator | left_insert (const left_const_iterator pos, Itr first, Itr last) |
| |
template<std::forward_iterator Itr>
requires std::convertible_to<typename std::iterator_traits<Itr>::value_type, T> |
| right_iterator | right_insert (const right_const_iterator pos, Itr first, Itr last) |
| |
| template<std::ranges::forward_range Range> |
| left_iterator | left_insert (const left_const_iterator pos, const Range &range) |
| |
| template<std::ranges::forward_range Range> |
| right_iterator | right_insert (const right_const_iterator pos, const Range &range) |
| |
| template<std::convertible_to< T > Ti> |
| left_iterator | left_insert (const left_const_iterator pos, std::initializer_list< Ti > ilist) |
| |
| template<std::convertible_to< T > Ti> |
| right_iterator | right_insert (const right_const_iterator pos, std::initializer_list< Ti > ilist) |
| |
| template<std::integral Int> |
| left_iterator | left_insert (const Int index, const T &value) |
| | Inserts a value into the left list at the index position.
|
| |
| template<std::integral Int> |
| right_iterator | right_insert (const Int index, const T &value) |
| | Inserts a value into the right list at the index position.
|
| |
| template<std::integral Int> |
| left_iterator | left_insert (const Int index, T &&value) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<std::integral Int> |
| right_iterator | right_insert (const Int index, T &&value) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| template<std::integral Int, std::ranges::forward_range Range> |
| left_iterator | left_insert (const Int index, const Range &range) |
| |
| template<std::integral Int, std::ranges::forward_range Range> |
| right_iterator | right_insert (const Int index, const Range &range) |
| |
| template<std::integral Int, std::forward_iterator Itr> |
| left_iterator | left_insert (const Int index, Itr first, Itr last) |
| |
| template<std::integral Int, std::forward_iterator Itr> |
| right_iterator | right_insert (const Int index, Itr first, Itr last) |
| |
| template<std::integral Int, std::convertible_to< T > Ti> |
| left_iterator | left_insert (const Int index, std::initializer_list< Ti > ilist) |
| |
| template<std::integral Int, std::convertible_to< T > Ti> |
| right_iterator | right_insert (const right_const_iterator index, std::initializer_list< Ti > ilist) |
| |
| left_iterator | left_erase (left_const_iterator cpos) |
| |
| right_iterator | right_erase (right_const_iterator cpos) |
| |
| template<std::integral Int> |
| left_iterator | left_erase (const Int pos) |
| |
| template<std::integral Int> |
| right_iterator | right_erase (const Int pos) |
| |
| left_iterator | left_erase (left_const_iterator first, left_const_iterator last) |
| |
| right_iterator | right_erase (right_const_iterator first, right_const_iterator last) |
| |
| template<class Callable> |
| std::size_t | left_erase_if (Callable &&f) |
| |
| template<class Callable> |
| std::size_t | right_erase_if (Callable &&f) |
| |
template<class Int>
requires std::is_integral_v<Int> |
| left_iterator | left_erase (Int first, Int last) |
| |
template<class Int>
requires std::is_integral_v<Int> |
| right_iterator | right_erase (Int first, Int last) |
| |
| void | left_pop_back () |
| |
| void | right_pop_back () |
| |
| template<class Function> |
| constexpr void | left_for_each (Function &&function) |
| |
| template<class Function> |
| constexpr void | right_for_each (Function &&function) |
| |