Стек QStack<T>

   
На этом шаге рассмотрим стек QStack<T>.

   
Стек реализует структуру данных, работающую по принципу LIFO (Last In First Out, последним пришел — первым ушел), т. е. из стека первым удаляется элемент, который был вставлен позже всех остальных (рис. 1).


Рис.1. Принцип работы стека

   
Класс QStack<T> представляет собой реализацию стековой структуры. Этот класс унаследован от класса QVector<T>. Процесс помещения элементов в стек обычно называется проталкиванием (pushing), а извлечение из него верхнего объекта — выталкиванием (poping).

   
Каждая операция проталкивания увеличивает размер стека на 1, а каждая операция вытал
кивания — уменьшает на 1. Для этих операций в классе QStack<T> определены методы push() и pop(). Метод top() возвращает ссылку на элемент вершины стека. Следующий пример демонстрирует использование класса стека.

QStack<int> stack;
QStack<int> num;
for(int i=1;i<=5;i++)
{
    stack.push(i*i);
    num.push(5-i+1);
}
while (!stack.empty())
{
    qDebug() << num.pop() << " элемент:" << stack.pop();
}


Рис.2. Результат работы программы

   
Файлы приложения можно взять Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий