【发布时间】:2013-04-06 14:55:16
【问题描述】:
我有两个priority_queue 和float,如下所示:
std::priority_queue<float> queue1;
std::priority_queue<float> queue2;
我需要合并它们。但是 STL merge 算法不允许直接使用 priority_queue:
merge(
queue1.begin(), queue2.end(),
queue2.begin(), queue2.end(),
queue1
);
有没有办法在不使用辅助数据结构的情况下合并priority_queue?
【问题讨论】:
-
恐怕你将不得不从一个队列中弹出元素并将它们推入另一个队列。
-
标准库不包含合并两个堆的算法。由于
priority_queue只是标准库堆算法的包装器,因此您没有合并功能。