System::Collections::Generic::Stack< T > Class Template Reference

Stack class forward declaration. More...

#include "system/collections/stack.h"

Classes

class  Enumerator
 

Public Types

typedef T ValueType
 Value type. More...
 
typedef std::list< T, ASPOSE_COLLECTION_ALLOCATOR_TYPE > stack_t
 Underlying data type. More...
 
typedef SharedPtr< IEnumerable< T > > IEnumerablePtr
 Collection containing elements of same type. More...
 
typedef SharedPtr< IEnumerator< T > > IEnumeratorPtr
 Enumerator type. More...
 

Public Member Functions

 Stack ()
 Constructs empty stack. More...
 
 Stack (int capacity)
 
 Stack (IEnumerablePtr collection)
 
IEnumeratorPtr GetEnumerator () override
 
virtual int get_Count () const
 
virtual void Clear ()
 Deletes all elements from stack. More...
 
virtual bool Contains (const T &item) const
 
void Push (const T &item)
 
Pop ()
 
Peek ()
 
stack_tdata ()
 
const stack_tdata () const
 
virtual ArrayPtr< T > ToArray ()
 
void AddRange (IEnumerablePtr collection)
 

Detailed Description

template<typename T>
class System::Collections::Generic::Stack< T >

Stack class forward declaration.

Stack class wrapping std::list. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Template Parameters
TElement type.

Member Typedef Documentation

◆ IEnumerablePtr

template<typename T >
typedef SharedPtr<IEnumerable<T> > System::Collections::Generic::Stack< T >::IEnumerablePtr

Collection containing elements of same type.

◆ IEnumeratorPtr

template<typename T >
typedef SharedPtr<IEnumerator<T> > System::Collections::Generic::Stack< T >::IEnumeratorPtr

Enumerator type.

◆ stack_t

template<typename T >
typedef std::list<T, ASPOSE_COLLECTION_ALLOCATOR_TYPE> System::Collections::Generic::Stack< T >::stack_t

Underlying data type.

◆ ValueType

template<typename T >
typedef T System::Collections::Generic::Stack< T >::ValueType

Value type.

Constructor & Destructor Documentation

◆ Stack() [1/3]

template<typename T >
System::Collections::Generic::Stack< T >::Stack ( )
inline

Constructs empty stack.

◆ Stack() [2/3]

template<typename T >
System::Collections::Generic::Stack< T >::Stack ( int  capacity)
inline

Constructs empty stack.

Parameters
capacityNumber of elements to reserve; ignored.

◆ Stack() [3/3]

template<typename T >
System::Collections::Generic::Stack< T >::Stack ( IEnumerablePtr  collection)
inline

Copy constructor.

Parameters
collectionCollection to copy elements from.

Member Function Documentation

◆ AddRange()

template<typename T >
void System::Collections::Generic::Stack< T >::AddRange ( IEnumerablePtr  collection)
inline

Puts elements into stack.

Parameters
collectionContainer of elements to push into stack.

◆ Clear()

template<typename T >
virtual void System::Collections::Generic::Stack< T >::Clear ( )
inlinevirtual

Deletes all elements from stack.

◆ Contains()

template<typename T >
virtual bool System::Collections::Generic::Stack< T >::Contains ( const T &  item) const
inlinevirtual

Checks if specific item is present in container; uses operator == for comparison.

Parameters
itemItem to look for.
Returns
True if item is found, false otherwise.

◆ data() [1/2]

template<typename T >
stack_t& System::Collections::Generic::Stack< T >::data ( )
inline

Internal data structure accessor.

Returns
Reference to internal data structure.

◆ data() [2/2]

template<typename T >
const stack_t& System::Collections::Generic::Stack< T >::data ( ) const
inline

Internal data structure accessor.

Returns
Const reference to internal data structure.

◆ get_Count()

template<typename T >
virtual int System::Collections::Generic::Stack< T >::get_Count ( ) const
inlinevirtual

Gets number of elements in stack.

Returns
Actual elements count.

◆ GetEnumerator()

template<typename T >
IEnumeratorPtr System::Collections::Generic::Stack< T >::GetEnumerator ( )
inlineoverride

Gets enumerator to iterate through current stack.

Returns
Newly created enumerator to iterate through current stack.

◆ Peek()

template<typename T >
T System::Collections::Generic::Stack< T >::Peek ( )
inline

Gets element from stack top, but keeps it in stack.

Returns
Top element of the stack.

◆ Pop()

template<typename T >
T System::Collections::Generic::Stack< T >::Pop ( )
inline

Gets element from top of the stack.

Returns
Popped element.

◆ Push()

template<typename T >
void System::Collections::Generic::Stack< T >::Push ( const T &  item)
inline

Puts element of top of the stack.

Parameters
itemElement to push into stack.

◆ ToArray()

template<typename T >
virtual ArrayPtr<T> System::Collections::Generic::Stack< T >::ToArray ( )
inlinevirtual

Converts stack to array.

Returns
Newly created element with copies of all elements in stack.