2 つの std::priority_queue (PQ と呼びましょう)(基になるコンテナーとしてベクトルを持つ) が等しいかどうかを確認したいと思います。私が念頭に置いているのは、何らかの形で基礎となるベクトルにアクセスしてから、std::equal を使用することです。PQ が提供するインターフェースには、等価性をチェックする方法がありません。素朴な方法は、これら 2 つの PQ のコピーから各要素を取り出し (元の PQ を失いたくないため)、1 つずつチェックすることですが、現在の (時間) では PQ のサイズが非常に大きくなることがよくあります。センシティブな)アプリケーションなので、好ましくありません。
編集
次のように宣言されています。
typedef std::priority_queue<std::pair<int,int>, std::vector<std::pair<int,int> >, greater_than> PRIORITY_Q;
ここで、greater_than は、比較を処理する構造体 (関数とその他のデータを含む) です。
私が欲しいのは:
PRIORITY_Q a;
PRIORITY_Q b;
次に、キュー a と b に値を入力します。
a == b (== をオーバーロードして) かどうかを確認したい。