Шаг 332.
Библиотека STL.
Специальные контейнеры. Стеки. Строение класса stack. Операции
На этом шаге мы рассмотрим операции, используемые в этом классе.
В данном классе имеются следующие операции:
-
Конструктор по умолчанию. Создает пустой стек.
-
explicit стек::stack (const Container& cont)
Создает стек, инициализированный элементами cont. Все элементы cont копируются в стек.
-
size_type стек::size() const
Возвращает текущее количество элементов. Для проверки отсутствия элементов в стеке рекомендуется использовать функцию empty(),
поскольку она может работать быстрее.
-
Проверяет, пуст ли стек. Эквивалент (но может работать быстрее):
-
void стек::push (const value_type& elem)
Вставляет копию elem в стек, в результате чего она становится новым первым элементом.
-
value_type& стек::top()
const value_type& стек::top() const
Обе формы возвращают верхний элемент стека, то есть элемент, который был вставлен последним (после всех остальных элементов стека).
Перед вызовом необходимо убедиться в том, что стек содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.
Первая форма для неконстантных стеков возвращает ссылку, что позволяет модифицировать верхний элемент во время его нахождения в стеке.
Хорошо это или нет - решайте сами.
-
Удаляет из стека верхний элемент, то есть элемент, который был вставлен последним (после всех остальных элементов стека).
Функция не имеет возвращаемого значения. Чтобы обработать значение верхнего элемента, следует предварительно вызвать функцию top().
Перед вызовом необходимо убедиться в том, что стек содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.
-
bool сравнение (const стек& stack1, const стек& stack2)
Возвращает результат сравнения двух стеков одного типа. Параметр сравнение - одна из следующих операций:
- operator ==
- operator !=
- operator <
- operator >
- operator <=
- operator >=
Два стека считаются равными, если они содержат одинаковое количество элементов, если элементы попарно совпадают и следуют в одинаковом
порядке (то есть проверка двух соответствующих друг другу элементов на равенство всегда дает true).
Отношение "меньше/больше" между контейнерами проверяется по лексикографическому критерию. Лексикографический критерий рассматривается при
описании алгоритма lexicographical_compare() на 280 шаге.
На следующем шаге мы рассмотрим пользовательскую реализацию стека.
Предыдущий шаг
Содержание
Следующий шаг