const value_type& top() const priority_queue See below.
void push(const value_type&) priority_queue See below.
void pop() [3] priority_queue See below.
New members

These members are not defined in the Assignable and Default Constructible requirements, but are specific to priority_queue.

Member Description
value_type The type of object stored in the priority_queue. This is the same as T and Sequence::value_type.
size_type An unsigned integral type. This is the same as Sequence::size_type.
priority_queue(const Compare& comp) The constructor. Creates an empty priority_queue, using comp as the comparison function. The default constructor uses Compare() as the comparison function.
priority_queue(const value_type* first, const value_type* last) The constructor. Creates a priority_queue initialized to contain the elements in the range [first, last), and using Compare() as the comparison function.
priority_queue(const value_type* first, const value_type* last, const Compare& comp) The constructor. Creates a priority_queue initialized to contain the elements in the range [first, last), and using comp as the comparison function.
bool empty() const Returns true if the priority_queue contains no elements, and false otherwise. S.empty() is equivalent to S.size() == 0.
size_type size() const Returns the number of elements contained in the priority_queue.
const value_type& top() const Returns a const reference to the element at the top of the priority_queue. The element at the top is guaranteed to be the largest element in the priority queue, as determined by the comparison function Compare. That is, for every other element x in the priority_queue, Compare(Q.top(), x) is false. Precondition: empty() is false.
void push(const value_type& x) Inserts x into the priority_queue. Postcondition: size() will be incremented by 1.
void pop() Removes the element at the top of the priority_queue, that is, the largest element in the priority_queue. [3] Precondition: empty() is false. Postcondition: size() will be decremented by 1.
Notes

[1] Priority queues are a standard concept, and can be implemented in many different ways; this implementation uses heaps. Priority queues are discussed in all algorithm books; see, for example, section 5.2.3 of Knuth. (D. E. Knuth, The Art of Computer Programming. Volume 3: Sorting and Searching. Addison-Wesley, 1975.)

[2] This restriction is the only reason for priority_queue to exist at all. If iteration through elements is important, you can either use a vector that is maintained in sorted order, or a set, or a vector that is maintained as a heap using make_heap, push_heap, and pop_heap. Priority_queue is, in fact, implemented as a random access container that is maintained as a heap. The only reason to use the container adaptor priority_queue , instead of performing the heap operations manually, is to make it clear

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату