. ‘C. 3)); toDoList.push(ToDoI
Автор admin Среда, 10 июня 2009 11:32
. ‘C. 3)); toDoList.push(ToDoItem(“Water lawn”. ‘A’. 1)): toDoList.push(ToDoItem(“Feed cat”. ‘B’. 1)): whiledtoDoList.emptyO) { cout « toDoList.topO « endl: toDoList.popO: } } ///:- 384 Глава 7 • Обобщенные контейнеры Чтобы оператор < для вывода ToDoItem работал с шаблоном less<>, он должен быть оформлен в виде внешней функции (а не функции класса). Все остальное происходит автоматически. Результат выполнения программы выглядит так: Water lawn Feed dog Feed cat Feed bird Mow lawn Empty trash Приоритетная очередь не поддерживает перебор элементов, однако ее поведение можно имитировать при помощи вектора (и получить полный доступ к функциональности вектора). Попробуйте разобраться в реализации приоритетной очереди, использующей функции make_heap(), push_heap() и pop_heap(). Эти функции являются «сердцем» приоритетной очереди. В сущности, можно сказать, что куча является приоритетной очередью, a priority_queue — всего лишь ее интерфейсная оболочка. Имитация получается достаточно прямолинейной, хотя на первый взгляд может показаться, что существует более короткий путь. Поскольку базовый контейнер priority_
Комментарии закрыты.
Последние комментарии