Я никогда раньше не использовал приоритетную очередь STL C++, и я нахожу детали на веб-сайте немного запутанными.Инициализация и вставка в очередь приоритетов (C++)
Я хочу, чтобы создать приоритет очереди узлов, которые я определил, как:
struct Node {
string data;
int weight;
Node *left, *right;
}
Я также вставить в очереди в порядке возрастания на основе веса узлов. Тем не менее, я не знаю, сколько узлов будет в финальном PQ.
Я смущен тем, какой конструктор использовать для создания PQ. На данный момент у меня есть:
std::priority_queue<Node> myQueue;
Но так как я хочу очередь для сортировки на основе весов узлов, я должен использовать конструктор:
priority_queue (const Compare& comp, const Container& ctnr);
будет работать? Будет ли «узел» в ctnr в этом случае?
Наконец, когда я хочу нажать элемент в priority_queue (используя STL priority_queue :: push), будет ли элемент автоматически размещаться в нужном месте?
спасибо.
Спасибо. Это очень детализировано и информативно. – user3025403
Мне интересно узнать: в том числе «компаратор» в каждом узле, особенно когда узлы большие, вызывает какую-либо проблему с производительностью? –
Функции не занимают места внутри объектов. – Brian