C++ 合并两个优先级队列 std::priority\u队列A; std::优先级队列B;

C++ 合并两个优先级队列 std::priority\u队列A; std::优先级队列B;,c++,stl,priority-queue,C++,Stl,Priority Queue,如何基于同一个比较器合并这些优先级队列A和B。我试图找到内置函数,但找不到任何函数。最简单的方法是将对象从一个队列移动到另一个队列: 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。我试图找到内置函数,但找不到任何函数。

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

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

不过,可能存在一种更有效的方法。

@BoBTFish:
std::priority_queue
不公开迭代器。将所有元素从一个队列推到另一个队列?@BoBTFish我已经想到了它,但问题是它的迭代器无法访问。我不能做A.begin()或A.end()。那个界面不可用。我说过我没想过!看来这是我最后的办法了。
while(!B.empty()) {
    A.push(B.top());
    B.pop();
}