Библиотека C ++ - <стек>

Введение

Стек - это структура данных, предназначенная для работы в контексте LIFO (Last in First Out). В стек элементы вставляются, а также удаляются только с одного конца.

Класс стека - это адаптер контейнера. Контейнер - это объекты, содержащие данные одного типа. Стек может быть создан из контейнеров различных последовательностей. Если контейнер не указан, он использует контейнер двухсторонней очереди по умолчанию . Адаптеры контейнера не поддерживают итераторы, поэтому мы не можем использовать их для обработки данных. Однако они поддерживают функции-члены push () и pop () для вставки и удаления данных соответственно.

Определение

Ниже приведено определение std :: stack из заголовочного файла <stack>.

template <class T, class Container = deque<T> > class stack;

Параметры

  • T - Тип содержащегося элемента.

    T может быть заменен любым другим типом данных, включая тип, определенный пользователем.

  • Container - Тип нижележащего объекта-контейнера.

Типы участников

Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.

Sr. No. Типы участников Определение
1 тип ценности T (Первый параметр шаблона)
2 container_type Второй параметр шаблона
3 size_type size_t
4 Справка тип ценности&
5 const_reference const value_type &

Функции из <stack>

Ниже приведен список всех методов из заголовка <stack>.

Конструкторы

Sr. No. Метод и описание
1 stack :: stack конструктор по умолчанию

Создает пустой объект стека с нулевыми элементами.

2 stack :: stack copy конструктор

Создает стек с копией каждого элемента, присутствующего в другом стеке.

3 стек :: конструктор перемещения стека

Создает стек с содержимым другого, используя семантику перемещения.

Деструктор

Sr. No. Метод и описание
1 стек :: ~ стек

Уничтожает стек, освобождая память контейнера.

Функции-члены

Sr. No. Метод и описание
1 стек :: emplace

Создает и вставляет новый элемент наверху стека.

2 стек :: пустой

Проверяет, пуст стек или нет.

3 stack :: operator = копировать версию

Добавляет новое содержимое в стек, заменяя старое.

4 stack :: operator = переместить версию

Добавляет новое содержимое в стек, заменяя старое.

5 стек :: поп

Удаляет верхний элемент из стека.

6 stack :: push copy version

Вставляет новый элемент в начало стека.

7 stack :: push move version

Вставляет новый элемент в начало стека.

8 стек :: размер

Возвращает общее количество элементов в стеке.

9 стек :: своп

Меняет содержимое стека на содержимое другого стека.

10 stack :: top

Возвращает ссылку на самый верхний элемент стека.

Перегруженные функции, не являющиеся членами

Sr. No. Метод и описание
1 оператор ==

Проверяет, равны ли два стека.

2 оператор! =

Проверяет, равны ли два стека.

3 оператор <

Проверяет, меньше ли первый стек, чем другой.

4 оператор <=

Проверяет, меньше или равен первый стек другому или нет.

5 оператор>

Проверяет, больше ли первый стек, чем другой.

6 оператор> =

Проверяет, больше или равен первый стек другому или нет.

7 замена

Меняет содержимое двух стеков.