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