クラスThing
を保持する3つの異なるpriority_queue
を作成し、それぞれをThing
が保持する値で別々にソートしたいとします。私はオペレータメソッドを内部的に、またはオブジェクトの友人のどちらかに定義できますが、別のテストメソッドを使用する方法はありますか?演算子メソッドの代わりにそのメソッドを使用するように指示するにはどうすればよいですか?そして、パラメータリストとオペレータ過負荷の作成方法はどのように異なるでしょうか?std :: priority_queue異なる比較
0
A
答えて
2
ほとんどのSTLコンテナと同様に、priority_queue
はCompare class in its template argumentsを受け入れます。
struct MyCompare1 {
bool operator()(const Thing& t1, const Thing& t2) {
// your logic here
}
};
std::priority_queue<Thing, std::vector<Thing>, MyCompare1> my_queue;
0
デフォルトの代わりに使用されるカスタムコンパレータタイプを渡すことができます。これはpriority_queue
のテンプレートパラメータです。
+0
どのようにこれを前書きしますか。これを説明するいくつかの文書を指してもいいですか(書く、使用する) – gardian06
0
priority_queueを定義するときに、3番目のパラメータとして比較関数を指定できます。 2番目のパラメータは基になるコンテナのタイプで、通常はstd::vector
です。
std::priority_queue<Thing> pq1;
std::priority_queue<Thing, std::vector<Thing>, std::greater<Thing> > pq2;
std::priority_queue<Thing, std::vector<Thing>, [your comparator here] > pq3;
関連する問題
- 1. std :: priority_queueのコンパレータ
- 2. 異なる比較署名:: LOWER_BOUNDここ
- 3. STDの比較::のstd ::ここバインド
- 4. std :: arraysのstd :: vectorの比較関数
- 5. std :: functionとlambdaの比較
- 6. qsortとstd :: sortの比較
- 7. std :: functionの比較<>
- 8. std :: minmaxとペアの比較
- 9. java異なるオプションと比較する
- 10. std :: priority_queue機能を拡張する
- 11. エラーコードenumをstd :: error_codeと比較する
- 12. 異なる長さのベクトルの比較
- 13. SAS Proc異なるフォーマットの比較
- 14. 異なるデータベーススキーマのパフォーマンスの比較
- 15. 異なるバックプロパゲーションアルゴリズムのパフォーマンス比較プロット
- 16. エラー: 'minHeap'を 'std :: priority_queue、std :: greater>'から 'std :: priority_queue'に変換できませんでした
- 17. 異なるデータフレームの異なるシリーズの比較/マッピング
- 18. C++のSTL make_heapとPRIORITY_QUEUEは異なる出力に与え
- 19. C++ - std :: priority_queueからstd :: vectorに要素をコピーする方法
- 20. のstd :: PRIORITY_QUEUE ::ペア<int, int>
- 21. std :: set比較関数のカスタム引数
- 22. std :: sort()でインライン関数を比較
- 23. ダイクストラの最短経路アルゴリズムの性能std :: priority_queue対std :: set
- 24. 2枚の差異を比較する
- 25. 差異のXMLを比較する
- 26. データフレームの異なる行番号で異なる列の値を比較する
- 27. 異なるファイルの異なる列をマージして比較する
- 28. C++クラス内のSTL priority_queueでどのようにこの比較を行うのですか
- 29. 異なる次元数の点を比較する方法は?
- 30. 異なるJekyll_dataファイルのデータを比較する
どのようにこれを前に記述しますか? – gardian06
このメソッドは独自のクラス/構造体でなければならないか、メンバ関数<同様にメンバ関数<(const Thing&_t2)と同じようにすることができます。 – gardian06
ビジュアルスタジオは、オペレータは非静的でなければならず、オペレータを定義する必要があります。 – gardian06