6
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 をマージするにはどうすればよいですか。組み込み関数を見つけようとしましたが、見つかりませんでした。

4

1 に答える 1

6

最も簡単な方法は、あるキューから別のキューにオブジェクトを単純に移動することです。

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

ただし、より効率的な方法が存在する可能性があります。

于 2013-07-19T12:07:32.240 に答える