16 #include <common/array.h> 21 template <
typename T,
int BlockSize = 16>
25 s4g_Stack(){ m_iCount = 0; m_Arr.resize(BlockSize); }
38 if (iCount > m_Arr.size())
54 m_Arr.reserve(iCount);
60 m_Arr[m_iCount] = val;
69 m_Arr[m_iCount - 1] = val;
82 void pop(
int iCount=1)
84 if (iCount > m_iCount)
94 if (
id >= 0 &&
id < m_iCount)
100 if ((m_iCount +
id) >= 0 && (m_iCount + id) < m_iCount)
101 return m_Arr[m_iCount + id];
102 else if (m_iCount == 0 &&
id == -1)
109 else if (
id >= m_iCount)
130 Array<T, BlockSize> m_Arr;
int getSize()
возвращает текущий размер стека
Definition: s4g_stack.h:28
void pop(int iCount=1)
вытолкнуть iCount количество элементов
Definition: s4g_stack.h:82
Стек, а точнее простой динамический массив с элементами стека
Definition: s4g_stack.h:22
void clear()
очистка стека
Definition: s4g_stack.h:45
T & operator[](int id)
аналогично get.
Definition: s4g_stack.h:117
void pushReplaceTop(T val)
впихнуть на вершину стека значение с заменой того что было на вершине
Definition: s4g_stack.h:65
void reserve(int iCount)
резервация памяти под элементы стека, текущий размер не изменится
Definition: s4g_stack.h:52
void push_back(T val)
аналогично push.
Definition: s4g_stack.h:76
T & getTop()
возвращает вершину стека
Definition: s4g_stack.h:123
void setStartSize(int iCount)
установка условно стартовой позиции стека, если стартовая позици больше чем элементов в массиве то ма...
Definition: s4g_stack.h:36
void push(T val)
впихнуть на вершину значение (все кто был станут на 1 элемент ниже)
Definition: s4g_stack.h:58