template<class TypeT, class Alloc = allocator<TypeT>>
struct fennec::list< TypeT, Alloc >
This data-structure behaves like a linked list, but does not use pointers. Instead, it is in-array. This creates the following properties:
| Property | Value |
| stable | ⛔ |
| dynamic | ✅ |
| homogenous | ✅ |
| distinct | ⛔ |
| ordered | ⛔ |
| space | \(O(N)\) |
| linear | ✅ |
| access | \(O(1)\) |
| find | \(O(N)\) |
| insertion | \(O(N)\) |
| deletion | \(O(N)\) |
- Template Parameters
-
|
|
Iterator type for forward iteration over a constant list
|
|
constexpr | list () |
| | Default Constructor, initializes an empty list.
|
| |
| constexpr | list (const list &l) |
| | Copy Constructor, copies all elements in l with optimized layout.
|
| |
| constexpr | list (list &&l) noexcept |
| | Move Constructor, takes ownership of the list.
|
| |
|
constexpr | ~list () |
| | Destructor, destructs all elements then releases the allocation.
|
| |
|
| constexpr list & | operator= (const list &l) |
| | Copy Assignment Operator.
|
| |
| constexpr list & | operator= (list &&l) noexcept |
| | Move Assignment Operator.
|
| |
|
| constexpr size_t | size () const |
| |
| constexpr size_t | capacity () const |
| |
| constexpr bool | empty () const |
| |
|
| constexpr value_t & | operator[] (int i) |
| | Array Access Operator.
|
| |
| constexpr const value_t & | operator[] (int i) const |
| | Const Array Access Operator.
|
| |
| constexpr value_t & | front () |
| | Access Front Element.
|
| |
| constexpr const value_t & | front () const |
| | Const Access Front Element.
|
| |
| constexpr value_t & | back () |
| | Access Back Element.
|
| |
| constexpr const value_t & | back () const |
| | Const Access Back Element.
|
| |
|
| constexpr size_t | insert (const iterator &it, const value_t &x) |
| | Copy Insertion.
|
| |
| constexpr size_t | insert (const iterator &it, value_t &&x) |
| | Move Insertion.
|
| |
| constexpr size_t | insert (size_t i, const value_t &x) |
| | Copy Insertion.
|
| |
| constexpr size_t | insert (size_t i, value_t &&x) |
| | Move Insertion.
|
| |
| template<typename... ArgsT> |
| constexpr size_t | emplace (size_t i, ArgsT &&...args) |
| | Emplace Insertion.
|
| |
| constexpr size_t | push_front (const value_t &x) |
| | Push Front Copy.
|
| |
| constexpr size_t | push_front (value_t &&x) |
| | Push Front Move.
|
| |
| template<typename... ArgsT> |
| constexpr size_t | emplace_front (ArgsT &&...args) |
| | Emplace Front.
|
| |
| constexpr size_t | push_back (const value_t &x) |
| | Push Back Copy.
|
| |
| constexpr size_t | push_back (value_t &&x) |
| | Push Back Move.
|
| |
| template<typename... ArgsT> |
| constexpr size_t | emplace_back (ArgsT &&...args) |
| | Emplace Back.
|
| |
| constexpr void | erase (size_t i) |
| | Erase Element.
|
| |
| constexpr void | erase (const iterator &it) |
| | Erase Element.
|
| |
|
constexpr void | pop_front () |
| | Pop Front, erases first element.
|
| |
|
constexpr void | pop_back () |
| | Pop Back, erases first element.
|
| |
|
constexpr void | clear () |
| | Clears the list, destructing all elements in order.
|
| |
|
| constexpr iterator | begin () |
| | C++ Iterator Specification begin()
|
| |
| constexpr iterator | end () |
| | C++ Iterator Specification end()
|
| |
| constexpr const_iterator | begin () const |
| | Const C++ Iterator Specification begin()
|
| |
| constexpr const_iterator | end () const |
| | Const C++ Iterator Specification end()
|
| |