ORIGINAL
Loading...
Searching...
No Matches
original::blocksList< TYPE, ALLOC > Class Template Referencefinal

A block-based list implementation. More...

#include <blocksList.h>

Inheritance diagram for original::blocksList< TYPE, ALLOC >:
Inheritance graph
Collaboration diagram for original::blocksList< TYPE, ALLOC >:
Collaboration graph

Classes

class  Iterator
 Iterator for blocksList, supports forward and backward iteration. More...
 

Public Member Functions

 blocksList (ALLOC alloc=ALLOC{})
 Constructs an empty blocksList.
 
 blocksList (const std::initializer_list< TYPE > &lst)
 Constructs a blocksList from an initializer list.
 
 blocksList (const array< TYPE > &arr)
 Constructs a blocksList from an array.
 
 blocksList (const blocksList &other)
 Copy constructor.
 
blocksListoperator= (const blocksList &other)
 Copy assignment operator.
 
 blocksList (blocksList &&other) noexcept
 Move constructor.
 
blocksListoperator= (blocksList &&other) noexcept
 Move assignment operator.
 
TYPE get (integer index) const override
 Gets the element at the specified index.
 
u_integer size () const override
 Gets the size of the blocksList.
 
Iteratorbegins () const override
 Gets an iterator to the beginning of the blocksList.
 
Iteratorends () const override
 Gets an iterator to the end of the blocksList.
 
TYPE & operator[] (integer index) override
 Gets a reference to the element at the specified index.
 
void set (integer index, const TYPE &e) override
 Sets the element at the specified index.
 
u_integer indexOf (const TYPE &e) const override
 Finds the index of the first occurrence of the specified element.
 
void push (integer index, const TYPE &e) override
 Pushes an element to the specified index in the blocksList.
 
TYPE pop (integer index) override
 Pops the element at the specified index in the blocksList.
 
void pushBegin (const TYPE &e) override
 Pushes an element to the beginning of the blocksList.
 
TYPE popBegin () override
 Pops the element from the beginning of the blocksList.
 
void pushEnd (const TYPE &e) override
 Pushes an element to the end of the blocksList.
 
TYPE popEnd () override
 Pops the element from the end of the blocksList.
 
std::string className () const override
 Gets the class name of the blocksList.
 
 ~blocksList () override
 Destructor for the blocksList.
 
- Public Member Functions inherited from original::baseList< TYPE, ALLOC >
virtual void add (const TYPE &e)
 Adds an element to the end of the list.
 
virtual TYPE remove (const TYPE &e)
 Removes an element from the list.
 
virtual void clear ()
 Removes all elements.
 
- Public Member Functions inherited from original::serial< TYPE, ALLOC >
virtual TYPE getBegin () const
 Retrieves the first element in the container.
 
virtual TYPE getEnd () const
 Retrieves the last element in the container.
 
virtual TYPE operator[] (integer index) const
 Retrieves the element at the specified index (const version).
 
bool contains (const TYPE &e) const override
 Checks if the container contains the specified element.
 
- Public Member Functions inherited from original::container< TYPE, ALLOC >
bool empty () const
 Checks if the container is empty.
 
virtual ~container ()=default
 Destructor for the container class.
 
- Public Member Functions inherited from original::iterationStream< TYPE, DERIVED >
integer compareTo (const iterationStream &other) const override
 Compares the current iteration stream with another iteration stream.
 
std::string className () const override
 Returns the class name.
 
std::string toString (bool enter) const override
 Converts the iteration stream to a string representation.
 
- Public Member Functions inherited from original::printable
 operator std::string () const
 Explicit conversion to std::string.
 
 operator const char * () const
 Explicit conversion to C-style string.
 
const char * toCString (bool enter) const
 Direct C-string access with formatting control.
 
template<typename TYPE>
auto formatString (const TYPE &t) -> std::string
 
template<typename TYPE>
auto formatCString (const TYPE &t) -> const char *
 
template<typename TYPE>
auto formatEnum (const TYPE &t) -> std::string
 
template<typename TYPE>
auto formatString (TYPE *const &ptr) -> std::string
 
- Public Member Functions inherited from original::iterable< TYPE >
iterAdaptor begin ()
 Returns an iterator pointing to the beginning of the iterable container.
 
iterAdaptor end ()
 Returns an iterator pointing to the end of the iterable container.
 
iterAdaptor begin () const
 Returns a constant iterator pointing to the beginning of the iterable container.
 
iterAdaptor end () const
 Returns a constant iterator pointing to the end of the iterable container.
 
iterAdaptor first ()
 Returns an iterator pointing to the first element.
 
iterAdaptor last ()
 Returns an iterator pointing to the last element.
 
iterAdaptor first () const
 Returns a constant iterator pointing to the first element.
 
iterAdaptor last () const
 Returns a constant iterator pointing to the last element.
 
template<typename Callback = transform<TYPE>>
requires Operation<Callback, TYPE>
void forEach (Callback operation=Callback{})
 Applies a given operation to each element in the iterable container.
 
template<typename Callback = transform<TYPE>>
requires Operation<Callback, TYPE>
void forEach (const Callback &operation=Callback{}) const
 Applies a given operation to each element in the iterable container (const version).
 
template<typename Callback>
requires original::Operation<Callback, TYPE>
auto forEach (Callback operation) -> void
 
template<typename Callback>
requires original::Operation<Callback, TYPE>
auto forEach (const Callback &operation) const -> void
 
- Public Member Functions inherited from original::comparable< iterationStream< TYPE, DERIVED > >
virtual integer compareTo (const DERIVED &other) const=0
 Compares the current object with another of the same type.
 
bool operator== (const DERIVED &other) const
 Checks if the current object is equal to another.
 
bool operator!= (const DERIVED &other) const
 Checks if the current object is not equal to another.
 
bool operator< (const DERIVED &other) const
 Checks if the current object is less than another.
 
bool operator> (const DERIVED &other) const
 Checks if the current object is greater than another.
 
bool operator<= (const DERIVED &other) const
 Checks if the current object is less than or equal to another.
 
bool operator>= (const DERIVED &other) const
 Checks if the current object is greater than or equal to another.
 
virtual ~comparable ()=default
 Virtual destructor for proper cleanup of derived objects.
 

Public Attributes

friend Iterator
 

Additional Inherited Members

- Static Public Member Functions inherited from original::printable
template<typename TYPE>
static std::string formatString (const TYPE &t)
 Universal value-to-string conversion.
 
template<typename TYPE>
static std::string formatString (TYPE *const &ptr)
 Pointer-specific formatting.
 
template<typename TYPE>
static const char * formatCString (const TYPE &t)
 C-string cache for temporary usage.
 
template<typename TYPE>
static std::string formatEnum (const TYPE &t)
 Enum formatting utility.
 
template<>
auto formatString (const char &t) -> std::string
 
template<>
auto formatString (const bool &t) -> std::string
 
template<>
auto formatString (const char *const &ptr) -> std::string
 
- Protected Member Functions inherited from original::serial< TYPE, ALLOC >
bool indexOutOfBound (integer index) const
 Checks if the provided index is out of bounds.
 
integer parseNegIndex (integer index) const
 Converts negative indices into valid positive indices.
 
- Protected Member Functions inherited from original::container< TYPE, ALLOC >
 container (ALLOC alloc=ALLOC{})
 Constructs a container with specified allocator.
 
TYPE * allocate (u_integer size)
 Allocates raw memory for elements.
 
void deallocate (TYPE *ptr, u_integer size)
 Deallocates memory previously allocated by allocate()
 
template<typename O_TYPE, typename... Args>
void construct (O_TYPE *o_ptr, Args &&... args)
 Constructs an element in-place.
 
template<typename O_TYPE>
void destroy (O_TYPE *o_ptr)
 Destroys an element.
 
- Protected Member Functions inherited from original::iterationStream< TYPE, DERIVED >
std::string elementsString () const
 Returns a string representation of the elements in the stream.
 
- Protected Attributes inherited from original::container< TYPE, ALLOC >
ALLOC allocator
 The allocator instance used for memory management.
 

Detailed Description

template<typename TYPE, typename ALLOC = allocator<TYPE>>
class original::blocksList< TYPE, ALLOC >

A block-based list implementation.

Template Parameters
TYPEType of elements stored in the blocksList
ALLOCAllocator type to use for memory management (default: allocator<TYPE>)

The blocksList class is a container that stores elements in blocks. The class provides operations for insertion, deletion, and accessing elements from both ends. Memory management is handled through the specified allocator type, which is used for both block allocation and element construction/destruction.

Constructor & Destructor Documentation

◆ blocksList() [1/5]

template<typename TYPE, typename ALLOC>
original::blocksList< TYPE, ALLOC >::blocksList ( ALLOC alloc = ALLOC{})
explicit

Constructs an empty blocksList.

Parameters
allocAllocator instance to use for memory management

Initializes an empty blocksList with one initial block allocated using the provided allocator.

◆ blocksList() [2/5]

template<typename TYPE, typename ALLOC>
original::blocksList< TYPE, ALLOC >::blocksList ( const std::initializer_list< TYPE > & lst)

Constructs a blocksList from an initializer list.

Parameters
lstThe initializer list to construct the blocksList from.

◆ blocksList() [3/5]

template<typename TYPE, typename ALLOC>
original::blocksList< TYPE, ALLOC >::blocksList ( const array< TYPE > & arr)
explicit

Constructs a blocksList from an array.

Parameters
arrThe array to construct the blocksList from.

◆ blocksList() [4/5]

template<typename TYPE, typename ALLOC>
original::blocksList< TYPE, ALLOC >::blocksList ( const blocksList< TYPE, ALLOC > & other)

Copy constructor.

Parameters
otherThe blocksList to copy from.

Creates a deep copy of another blocksList. If ALLOC::propagate_on_container_copy_assignment is true, the allocator is also copied.

◆ blocksList() [5/5]

template<typename TYPE, typename ALLOC>
original::blocksList< TYPE, ALLOC >::blocksList ( blocksList< TYPE, ALLOC > && other)
noexcept

Move constructor.

Parameters
otherThe blocksList to move from.

Moves the contents of another blocksList into this one. If ALLOC::propagate_on_container_move_assignment is true, the allocator is also moved.

Member Function Documentation

◆ begins()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::begins ( ) const
overridevirtual

Gets an iterator to the beginning of the blocksList.

Returns
An iterator to the beginning of the blocksList.

Implements original::iterable< TYPE >.

◆ className()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::className ( ) const
nodiscardoverridevirtual

Gets the class name of the blocksList.

Returns
The class name as a string.

Reimplemented from original::printable.

◆ ends()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::ends ( ) const
overridevirtual

Gets an iterator to the end of the blocksList.

Returns
An iterator to the end of the blocksList.

Implements original::iterable< TYPE >.

◆ get()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::get ( integer index) const
overridevirtual

Gets the element at the specified index.

Parameters
indexThe index of the element to retrieve.
Returns
The element at the specified index.

Implements original::serial< TYPE, ALLOC >.

◆ indexOf()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::indexOf ( const TYPE & e) const
overridevirtual

Finds the index of the first occurrence of the specified element.

Parameters
eThe element to search for.
Returns
The index of the element, or the size of the blocksList if not found.

Implements original::serial< TYPE, ALLOC >.

◆ operator=() [1/2]

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::operator= ( blocksList< TYPE, ALLOC > && other)
noexcept

Move assignment operator.

Parameters
otherThe blocksList to move from.
Returns
A reference to this blocksList.

Moves the contents of another blocksList into this one. If ALLOC::propagate_on_container_move_assignment is true, the allocator is also moved.

◆ operator=() [2/2]

template<typename TYPE, typename ALLOC>
original::blocksList< TYPE, ALLOC > & original::blocksList< TYPE, ALLOC >::operator= ( const blocksList< TYPE, ALLOC > & other)

Copy assignment operator.

Parameters
otherThe blocksList to assign from.
Returns
A reference to this blocksList.

Performs a deep copy of another blocksList. If ALLOC::propagate_on_container_copy_assignment is true, the allocator is also copied.

◆ operator[]()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::operator[] ( integer index)
overridevirtual

Gets a reference to the element at the specified index.

Parameters
indexThe index of the element to retrieve.
Returns
A reference to the element at the specified index.

Implements original::serial< TYPE, ALLOC >.

◆ pop()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::pop ( integer index)
overridevirtual

Pops the element at the specified index in the blocksList.

Parameters
indexThe index of the element to pop.
Returns
The element that was popped.

Implements original::baseList< TYPE, ALLOC >.

◆ popBegin()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::popBegin ( )
overridevirtual

Pops the element from the beginning of the blocksList.

Returns
The element that was popped.

Implements original::baseList< TYPE, ALLOC >.

◆ popEnd()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::popEnd ( )
overridevirtual

Pops the element from the end of the blocksList.

Returns
The element that was popped.

Implements original::baseList< TYPE, ALLOC >.

◆ push()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::push ( integer index,
const TYPE & e )
overridevirtual

Pushes an element to the specified index in the blocksList.

Parameters
indexThe index at which to insert the element.
eThe element to insert.

Implements original::baseList< TYPE, ALLOC >.

◆ pushBegin()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::pushBegin ( const TYPE & e)
overridevirtual

Pushes an element to the beginning of the blocksList.

Parameters
eThe element to push.

Implements original::baseList< TYPE, ALLOC >.

◆ pushEnd()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::pushEnd ( const TYPE & e)
overridevirtual

Pushes an element to the end of the blocksList.

Parameters
eThe element to push.

Implements original::baseList< TYPE, ALLOC >.

◆ set()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::set ( integer index,
const TYPE & e )
overridevirtual

Sets the element at the specified index.

Parameters
indexThe index of the element to set.
eThe value to set the element to.

Implements original::serial< TYPE, ALLOC >.

◆ size()

template<typename TYPE, typename ALLOC>
auto original::blocksList< TYPE, ALLOC >::size ( ) const
nodiscardoverridevirtual

Gets the size of the blocksList.

Returns
The size of the blocksList.

Implements original::container< TYPE, ALLOC >.


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