, такое решение безопасно по о
Автор admin Вторник, 9 июня 2009 11:32
, такое решение безопасно по отношению к исключениям (эта тема обсуждалась в главе 1). Если бы функция рор() одновременно изменяла состояние стека и пыталась вернуть верхний элемент, исключение в копирующем конструкторе элемента могло бы привести к его потере. При использовании шаблона stack (или приоритетной очереди priority_queue, о которой речь пойдет далее) можно эффективно ссылаться на элемент top() сколько угодно раз, а затем удалить верхний элемент из стека вызовом рор(). Наверное, если бы разработчики использовали вместо «рор» какое-нибудь другое имя, недоразумений было бы меньше. Шаблон stack обладает простым интерфейсом — в сущности, все его функции уже были перечислены. Поскольку все обращения к элементам ограничиваются вершиной, стек не поддерживает итераторы для перебора элементов. Также отсутствуют изощренные формы инициализации, но при необходимости можно использовать средства того контейнера, на базе которого реализован стек. Допустим, имеется функция, рассчитанная на интерфейс стека, но в остальной части программы объекты должны храниться в виде списка. Следующая программа сохраняет каж
Комментарии закрыты.
Последние комментарии