Стеки - это не метод, а структура данных, последний пришел, первый вышел (LIFO).
В C ++ std::stack<>
- это шаблон класса, данные которого могут быть любого типа. Есть много ситуаций, когда последнее - это то, что вам нужно.
Примером являются виртуальные машины или интерпретаторы, которые используют архитектуру стека для сохранения рабочего состояния во время выполнения функций / процедур. Рассмотрим следующий интерпретатор языка, где подпроцедуры могут не изменить состояние вызывающего:
std::stack<RunState> state;
Instruction i = fetch();
switch (i.type()) {
case Instruction.Call:
state.push (state.top());
break;
case Instruction.Return:
state.pop();
break;
...
}
В Википедии есть больше примеров для использования структур данных стека. Некоторые задачи сортировки решаются относительно легко с помощью стеков.
Как и во всех структурах данных, и C ++ имеет некоторые из них ( списки , очереди , устанавливает , карты (или ассоциативные массивы, или словари) , массивы / векторы и более), они могут вам не понадобиться сейчас и, может быть, даже не через 2 года, но вы должны знать о них, их свойствах, преимуществах, недостатках и когда это подходящий момент для их использования.