合并两个优先级队列

时间:2013-07-19 11:51:10

标签: c++ stl priority-queue

std::priority_queue<some_type, std::vector<some_type>, some_comparator> A;
std::priority_queue<some_type, std::vector<some_type>, some_comparator> B;

如何基于同一个比较器合并这些优先级队列A和B.我试图找到内置函数但找不到任何函数。

1 个答案:

答案 0 :(得分:5)

最简单的方法是简单地将对象从一个队列移动到另一个队列:

while(!B.empty()) {
    A.push(B.top());
    B.pop();
}

但可能存在一种更有效的方法。