Приоритетная очередь Heapify - PullRequest
0 голосов
/ 16 января 2019

Есть ли способ инициализировать очередь приоритетов с некоторыми элементами сложности O (N)? Возможно использование алгоритма heapify.

Я искал об этой проблеме, но не мог найти решение. Кроме того, я знаю о make_heap (), но это другое дело, а не о приоритетных очередях.

1 Ответ

0 голосов
/ 16 января 2019

Есть ли способ инициализировать очередь приоритетов с некоторыми элементами сложности O (N)?

Да; std::priority_queue<...> имеет конструктор для этого. https://en.cppreference.com/w/cpp/container/priority_queue/priority_queue дает этот пример:

std::vector<int> vec={3, 1, 4, 1, 5};
std::priority_queue<int> c3(std::less<int>(), vec);

, который инициализирует c3 в очередь с приоритетами (min-heap), содержащую элементы vec.

...