2016-01-09 4 views
-1

У меня возник вопрос относительно реализации адаптера контейнера priority_queue. Теперь я знаю, что он внутренне использует функции push_heap, pop_heap. Это мой вопрос:C++ STL приоритетная очередь

make_heap превращает вектор в кучу в O (n) раз, используя алгоритм heapify. Есть ли аналогичная операция heapify для очередей приоритетов в C++ STL? Единственный возможный способ заполнения значения priority_queue, о котором я знаю, - это добавление элементов вручную. Есть ли способ для пакетной вставки также в C++ STL для priority_queue. Я не нашел ничего на странице ссылок на C++.

+1

Просто передайте вектор в конструктор 'priority_queue'. –

+1

Большое спасибо. Да, должен был понять это сам. –

ответ

0

Почему просто не использовать std :: priority_queue?

http://www.cplusplus.com/reference/queue/priority_queue/

Это все вставки/автоматически удалять операции. Поэтому вам не нужно беспокоиться о том, чтобы держать контейнер в порядке очередности очереди.

+0

Я использую только std :: priority_queue. Я хотел бы знать, был ли метод пакетной вставки, поскольку вставка в пакет может выполняться в линейном времени с использованием алгоритма heapify. –

Смежные вопросы