Библиотека 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 | замена Меняет содержимое двух стеков. |