‘: pqi .popO; } } ///:- Шаблон

Автор admin Среда, 10 июня 2009 11:32

‘: pqi .popO; } } ///:- Шаблон класса PQV построен по тому же образцу, что и шаблон priority_queue библиотеки STL. Но в него включена дополнительная функция getVector() для создания нового вектора, являющегося копией содержимого PQV (то есть базовой кучи). Далее копия сортируется (при этом вектор PQV остается неизменным), а ее элементы переставляются в обратном порядке, чтобы порядок перебора в новом векторе соответствовал порядку извлечения элементов из приоритетной очереди. Совмещение этой методики с наследованием от priority_queue (см. пример PriorityQueue4.cpp) позволяет получить более компактный код: //: C07:PriorityQueue8.cpp // Более компактная версия PriorityQueue7.срр Битовые поля 389 #inc1ude #include #i nclude #include #include #include using namespace std; tempiate class PQV : public priority_queue { public: typedef vector TVec: TVec vector() { TVec r(c.beginO, c.endO); // Базовая куча хранится в переменной с sort_heap(r.beginO. r.endO. comp): // Приведение к порядку приоритетной очереди: reverse(r.beginO. r.endO):


Комментарии закрыты.