Шаг 329.
Библиотека STL.
Специальные контейнеры. Стеки. Пример использования стека

    На этом шаге мы приведем пример использования стека.

    Пример использования класса stack():

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#include <iterator>
#include <stack>
#include <algorithm>

#include <conio.h> //необходимо для getch()

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
using namespace std;

std::string ToRus(const std::string &in)
{
  char *buff = new char [in.length()+1];
  CharToOem(in.c_str(),buff);
  std::string out(buff);
  delete [] buff;
  return out;
}

int main()
{

  stack<int> st;

  // Занесение трех элементов в стек
  st.push(1);
  st.push(2);
  st.push(3);

  // Извлечение и вывод двух элементов из стека
  cout << ToRus("Извлечение и вывод двух элементов из стека:\n");
  cout << st.top() << ' ';
  st.pop();
  cout << st.top() << ' ';
  st.pop();
  cout << endl;

  // Модификация верхнего элемента
  st.top() = 77;

  // Занесение двух новых элементов
  st.push(4);
  st.push(5);

  // Извлечение одного элемента без обработки
  st.pop();

  // Извлечение и вывод оставшихся элементов
  cout << ToRus("Результат модификации верхнего элемента,\n");
  cout << ToRus("занесения элементов 4 и 5, а также \n");
  cout << ToRus("извлечения одного элемента без обработки:\n");
  while (!st.empty()) {
      cout << st.top() << ' ';
      st.pop();
  }
  cout << endl;


  getch();
  return 0;
}

//---------------------------------------------------------------------------
Текст этого примера можно взять здесь.

    Результат выполнения программы:


Рис.1. Результат работы приложения

    На следующем шаге мы рассмотрим строение класса stack.




Предыдущий шаг Содержание Следующий шаг