На этом шаге мы перечислим операции, использованные при создании класса queue.
Перечислим операции, используемые при работе с очередью:
очередь::queue ()
explicit очередь::queue (const Container& cont)
size_type очередь::size () const
bool очередь::empty () const
очередь::size()==0
void очередь::push (const value_type& elem)
value_type& очередь::front () const value_type& очередь::front () const
Перед вызовом необходимо убедиться в том, что очередь содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.
Первая форма для неконстантных очередей возвращает ссылку, что позволяет модифицировать следующий элемент во время его нахождения в очереди. Хорошо это или нет - решайте сами.
value_type& очередь::back () const value_type& очередь::back () const
Перед вызовом необходимо убедиться в том, что очередь содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.
Первая форма для неконстантных очередей возвращает ссылку, что позволяет модифицировать последний элемент во время его нахождения в очереди. Хорошо это или нет - решайте сами.
void очередь::рор ()
Функция не имеет возвращаемого значения. Чтобы обработать значение верхнего элемента, следует предварительно вызвать функцию front().
Перед вызовом необходимо убедиться в том, что очередь содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.
bool сравнение (const очередь& queue1, const очередь& queue2)
Отношение "меньше/больше" между контейнерами проверяется по лексикографическому критерию. Лексикографический критерий рассматривается при описании алгоритма lexicographical_compare() на 280 шаге.
На следующем шаге мы рассмотрим пользовательскую реализацию очереди.