Строение класса stack. Операции

   
На этом шаге мы рассмотрим операции, используемые в этом классе.

   
В данном классе имеются следующие операции:

  • стек::stack()
    

    Конструктор по умолчанию. Создает пустой стек.

  • explicit стек::stack (const Container& cont)
    

    Создает стек, инициализированный элементами cont. Все элементы cont копируются в стек.

  • size_type стек::size() const
    

    Возвращает текущее количество элементов. Для проверки отсутствия элементов в стеке рекомендуется использовать функцию empty(),
    поскольку она может работать быстрее.

  • bool стек::empty() const
    

    Проверяет, пуст ли стек. Эквивалент (но может работать быстрее):

      стек::size()==0
    
  • void стек::push (const value_type& elem)
    

    Вставляет копию elem в стек, в результате чего она становится новым первым элементом.

  • value_type& стек::top()
    const value_type& стек::top() const
    

    Обе формы возвращают верхний элемент стека, то есть элемент, который был вставлен последним (после всех остальных элементов стека).
    Перед вызовом необходимо убедиться в том, что стек содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.
    Первая форма для неконстантных стеков возвращает ссылку, что позволяет модифицировать верхний элемент во время его нахождения в стеке.
    Хорошо это или нет - решайте сами.

  • void стек::pop ()
    

    Удаляет из стека верхний элемент, то есть элемент, который был вставлен последним (после всех остальных элементов стека).
    Функция не имеет возвращаемого значения. Чтобы обработать значение верхнего элемента, следует предварительно вызвать функцию top().
    Перед вызовом необходимо убедиться в том, что стек содержит хотя бы один элемент (size()>0), иначе вызов приводит к непредсказуемым последствиям.

  • bool сравнение (const стек& stack1, const стек& stack2)
    

    Возвращает результат сравнения двух стеков одного типа. Параметр сравнение - одна из следующих операций:

    • operator ==
    • operator !=
    • operator <
    • operator >
    • operator <=
    • operator >=

       
    Два стека считаются равными, если они содержат одинаковое количество элементов, если элементы попарно совпадают и следуют в одинаковом
    порядке (то есть проверка двух соответствующих друг другу элементов на равенство всегда дает true).

       
    Отношение "меньше/больше" между контейнерами проверяется по лексикографическому критерию. Лексикографический критерий рассматривается при
    описании алгоритма lexicographical_compare() на 280 шаге.

   
На следующем шаге мы рассмотрим пользовательскую реализацию стека.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий