Стек — это структура данных, предназначенная для работы в контексте LIFO («Последний пришел первым»). В стек вставляются элементы, а также удаляются только с одного конца.
Класс стека — контейнерный адаптер. Контейнер — это объекты, которые содержат данные одного типа. Стек может быть создан из разных контейнеров последовательности. Если контейнер не указан, он использует контейнер deque по умолчанию. Контейнерные адаптеры не поддерживают итераторы, поэтому мы не можем использовать их для манипулирования данными. Однако они поддерживают функции-члены push () и pop () для вставки и удаления данных соответственно.
Определение
Ниже приведено определение std :: stack из заголовочного файла <stack>
template <class T, class Container = deque<T> > class stack;
параметры
-
T — Тип содержащегося элемента.
T может быть заменен любым другим типом данных, включая определенный пользователем тип.
-
Контейнер — тип нижележащего объекта контейнера.
T — Тип содержащегося элемента.
T может быть заменен любым другим типом данных, включая определенный пользователем тип.
Контейнер — тип нижележащего объекта контейнера.
Типы участников
Следующие типы элементов могут использоваться в качестве параметров или типа возврата функциями-членами.
Sr.No. | Типы участников | Определение |
---|---|---|
1 | тип ценности | T (Первый параметр шаблона) |
2 | container_type | Второй параметр шаблона |
3 | size_type | size_t |
4 | ссылка | тип ценности& |
5 | const_reference | const value_type & |
Функции из <стека>
Ниже приведен список всех методов из заголовка <stack>.
Создает пустой объект стека с нулевыми элементами.
Создает стек с копией каждого элемента, присутствующего в другом стеке.
Создает стек с содержимым другого, используя семантику перемещения.
Уничтожает стек путем освобождения памяти контейнера.
Создает и вставляет новый элемент в верхней части стека.
Проверяет, является ли стек пустым или нет.
Назначает новое содержимое в стек, заменяя старое.
Назначает новое содержимое в стек, заменяя старое.
Удаляет верхний элемент из стека.
Вставляет новый элемент в верхней части стека.
Вставляет новый элемент в верхней части стека.
Возвращает общее количество элементов в стеке.
Обменивается содержимым стека с содержимым другого стека.
Возвращает ссылку на самый верхний элемент стека.
Проверяет, равны ли два стека или нет.
Проверяет, равны ли два стека или нет.
Проверяет, меньше ли первый стек, чем другие, или нет.
Проверяет, является ли первый стек меньше или равен другому или нет.
Проверяет, больше ли первый стек, чем другой, или нет.
Проверяет, является ли первый стек больше или равен другому или нет.
Обменяет содержимое двух стеков.