Любой массив, подобный структуре, будет дорого увеличивать и уменьшать (T
должен быть копируемым), а все существующие T
должны быть перемещены. Если вы обнаружите, что вы делаете много нажатий / всплывающих окон и вам необходимо поддерживать низкое потребление памяти, попробуйте использовать связанный список для внутреннего использования. Это должно быть только по одной ссылке.
Вот эскиз:
template <class T>
class stack
{
struct Node
{
T data;
Node* next;
};
public:
// methods
private:
Node *head;
};
Теперь, чтобы поместить что-то в стек, создайте Node
с помощью T
, установите следующий указатель на текущий head
, а head
на указатель Node
. Поппинг включает в себя next
из head
и установку в head
.
Конечно, вам нужно правильно управлять памятью при уничтожении и т. Д.
РЕДАКТИРОВАТЬ: ах, похоже, мое предположение, что вы, возможно, знаете основы C ++, неверно, я предположил, что вы сделали, как вы используете шаблон. В этом случае - игнорируйте этот ответ, пока не изучите основы!