|
| stack (const SERIAL< TYPE, ALLOC< TYPE > > &serial=SERIAL< TYPE, ALLOC< TYPE > >{}) |
| Constructs a stack with specified underlying container and allocator.
|
|
| stack (const std::initializer_list< TYPE > &lst) |
| Constructs stack from initializer list with allocator.
|
|
| stack (const stack &other) |
| Copy constructs a stack with allocator propagation.
|
|
stack & | operator= (const stack &other) |
| Copy assignment operator.
|
|
| stack (stack &&other) noexcept |
| Move constructs a stack with allocator propagation.
|
|
stack & | operator= (stack &&other) noexcept |
| Move assignment operator.
|
|
void | push (const TYPE &e) |
| Pushes element to the top of the stack.
|
|
TYPE | pop () |
| Removes and returns top element from the stack.
|
|
TYPE | top () const |
| Accesses the top element of the stack.
|
|
std::string | className () const override |
| Gets the class name identifier.
|
|
u_integer | size () const override |
| Returns the number of elements in the adapter.
|
|
void | swap (containerAdapter &other) noexcept |
| Swaps the contents of this container adapter with another.
|
|
void | clear () |
| Removes all elements from the adapter.
|
|
bool | contains (const TYPE &e) const override |
| Checks for element existence in the adapter.
|
|
integer | compareTo (const containerAdapter &other) const override |
| Compares two container adapters lexicographically.
|
|
u_integer | toHash () const noexcept override |
| Computes hash value for the container adapter.
|
|
std::string | toString (bool enter) const override |
| Generates formatted string representation.
|
|
| ~containerAdapter () override=default |
| Virtual destructor for proper polymorphic cleanup.
|
|
| 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 |
|
bool | empty () const |
| Checks if the container is empty.
|
|
virtual | ~container ()=default |
| Destructor for the container class.
|
|
bool | operator== (const containerAdapter< TYPE, SERIAL, ALLOC > &other) const |
| Checks if the current object is equal to another.
|
|
bool | operator!= (const containerAdapter< TYPE, SERIAL, ALLOC > &other) const |
| Checks if the current object is not equal to another.
|
|
bool | operator< (const containerAdapter< TYPE, SERIAL, ALLOC > &other) const |
| Checks if the current object is less than another.
|
|
bool | operator> (const containerAdapter< TYPE, SERIAL, ALLOC > &other) const |
| Checks if the current object is greater than another.
|
|
bool | operator<= (const containerAdapter< TYPE, SERIAL, ALLOC > &other) const |
| Checks if the current object is less than or equal to another.
|
|
bool | operator>= (const containerAdapter< TYPE, SERIAL, ALLOC > &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.
|
|
virtual bool | equals (const containerAdapter< TYPE, SERIAL, ALLOC > &other) const noexcept |
| Compares two objects for equality.
|
|
virtual | ~hashable ()=0 |
| Virtual destructor.
|
|
Last-In-First-Out (LIFO) container adapter.
- Template Parameters
-
TYPE | Type of elements stored in the stack |
SERIAL | Underlying container type (default: chain) |
ALLOC | Allocator type for memory management (default: allocator<TYPE>) |
Implements stack operations using the specified underlying container type. Provides standard stack interface including push, pop, top, and comparison operations. The adapter maintains elements through composition with the specified SERIAL container.
The allocator is propagated to both the stack adapter and the underlying serial container for consistent memory management. The ALLOC type must meet the C++ allocator requirements and provide:
- allocate()/deallocate() methods
- construct()/destroy() methods
- propagate_on_container_copy_assignment/move_assignment typedefs