オブジェクトに優先キューSTLを使用するにはどうすればよいですか?

user2441151
class Person
{
public:
    int age;
};

Personクラスのオブジェクトを優先キューに保存したい。

priority_queue< Person, vector<Person>, ??? >

比較のためにクラスを定義する必要があると思いますが、よくわかりません。

また、私たちが書くとき、

priority_queue< int, vector<int>, greater<int> > 

大きい方はどのように機能しますか?

フアンチョパンザ

Personこの場合、キューに格納されているタイプに対して、有効で厳密な弱順序の比較を提供する必要がありますデフォルトでは、を使用しますstd::less<T>。これは、と同等の値に解決されoperator<ます。これは、それ自体が格納されているタイプに依存しています。したがって、実装する場合

bool operator<(const Person& lhs, const Person& rhs); 

それ以上の変更なしで動作するはずです。実装は次のようになります

bool operator<(const Person& lhs, const Person& rhs)
{
  return lhs.age < rhs.age;
}

タイプに自然な「より小さい」比較がない場合は、デフォルトの代わりに独自の述語を提供する方が理にかなっていますstd::less<Person>例えば、

struct LessThanByAge
{
  bool operator()(const Person& lhs, const Person& rhs) const
  {
    return lhs.age < rhs.age;
  }
};

次に、次のようにキューをインスタンス化します。

std::priority_queue<Person, std::vector<Person>, LessThanByAge> pq;

std::greater<Person>コンパレータとしての使用に関しては、これはoperator>、デフォルトの場合と同等の機能を使用し、優先度が反転したWRTでキューを作成する効果があります。operator>2つのPersonインスタンスで動作できるの存在が必要になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Dagger 2を使用してAndroid優先ジョブキューにオブジェクトを挿入するにはどうすればよいですか?

分類Dev

Dagger 2を使用してAndroid優先ジョブキューにオブジェクトを挿入するにはどうすればよいですか?

分類Dev

HttpRuntime.Cacheオブジェクトのキャッシュアイテムの優先度を取得するにはどうすればよいですか?

分類Dev

オブジェクトとマージするために.stlファイルでPOV-Rayを使用するにはどうすればよいですか?

分類Dev

移動専用オブジェクトを使用してブロッキングキューを設計するにはどうすればよいですか?

分類Dev

Firestoreでオブジェクトにキーが含まれているドキュメントを取得するにはどうすればよいですか?

分類Dev

Laravelのビューにオブジェクトを送信するにはどうすればよいですか?

分類Dev

Laravelのビューにオブジェクトを送信するにはどうすればよいですか?

分類Dev

Javascriptオブジェクト/モジュールを整理するにはどうすればよいですか?

分類Dev

gnuplotのキー/凡例にオブジェクトを追加するにはどうすればよいですか?

分類Dev

jsonキーをjsonオブジェクトに解析するにはどうすればよいですか

分類Dev

jsonキーをjsonオブジェクトに解析するにはどうすればよいですか

分類Dev

ビューからAttributeSetオブジェクトを取得するにはどうすればよいですか?

分類Dev

JavaScriptオブジェクトからキーを削除するにはどうすればよいですか?

分類Dev

オブジェクトからキーを除外するにはどうすればよいですか?

分類Dev

主キーからオブジェクトを取得するにはどうすればよいですか

分類Dev

オブジェクトキーで型を宣言するにはどうすればよいですか

分類Dev

AngularJSでResourceオブジェクトのキーを取得するにはどうすればよいですか?

分類Dev

ビューにオブジェクトを認識させるにはどうすればよいですか

分類Dev

動的キーオブジェクトを反復処理するにはどうすればよいですか?

分類Dev

CKRecordのキーとオブジェクトを削除するにはどうすればよいですか?

分類Dev

オブジェクトキーを生成するにはどうすればよいですか?

分類Dev

オブジェクトのキー値を変更するにはどうすればよいですか?

分類Dev

オブジェクトキーの初期値を設定するにはどうすればよいですか?

分類Dev

jsonオブジェクトを配列にプッシュするときに特定のキーを省略するにはどうすればよいですか?

分類Dev

Google App Engineにキャッシュされているユーザーオブジェクトを更新するにはどうすればよいですか?

分類Dev

Jackson /他のライブラリを使用してjson応答オブジェクトを優先フォーマットにマッピングするにはどうすればよいですか?

分類Dev

Jackson /他のライブラリを使用してjson応答オブジェクトを優先フォーマットにマッピングするにはどうすればよいですか?

分類Dev

同じ優先度で優先度キューに追加される「サイド」オブジェクトを変更することはできますか?

Related 関連記事

  1. 1

    Dagger 2を使用してAndroid優先ジョブキューにオブジェクトを挿入するにはどうすればよいですか?

  2. 2

    Dagger 2を使用してAndroid優先ジョブキューにオブジェクトを挿入するにはどうすればよいですか?

  3. 3

    HttpRuntime.Cacheオブジェクトのキャッシュアイテムの優先度を取得するにはどうすればよいですか?

  4. 4

    オブジェクトとマージするために.stlファイルでPOV-Rayを使用するにはどうすればよいですか?

  5. 5

    移動専用オブジェクトを使用してブロッキングキューを設計するにはどうすればよいですか?

  6. 6

    Firestoreでオブジェクトにキーが含まれているドキュメントを取得するにはどうすればよいですか?

  7. 7

    Laravelのビューにオブジェクトを送信するにはどうすればよいですか?

  8. 8

    Laravelのビューにオブジェクトを送信するにはどうすればよいですか?

  9. 9

    Javascriptオブジェクト/モジュールを整理するにはどうすればよいですか?

  10. 10

    gnuplotのキー/凡例にオブジェクトを追加するにはどうすればよいですか?

  11. 11

    jsonキーをjsonオブジェクトに解析するにはどうすればよいですか

  12. 12

    jsonキーをjsonオブジェクトに解析するにはどうすればよいですか

  13. 13

    ビューからAttributeSetオブジェクトを取得するにはどうすればよいですか?

  14. 14

    JavaScriptオブジェクトからキーを削除するにはどうすればよいですか?

  15. 15

    オブジェクトからキーを除外するにはどうすればよいですか?

  16. 16

    主キーからオブジェクトを取得するにはどうすればよいですか

  17. 17

    オブジェクトキーで型を宣言するにはどうすればよいですか

  18. 18

    AngularJSでResourceオブジェクトのキーを取得するにはどうすればよいですか?

  19. 19

    ビューにオブジェクトを認識させるにはどうすればよいですか

  20. 20

    動的キーオブジェクトを反復処理するにはどうすればよいですか?

  21. 21

    CKRecordのキーとオブジェクトを削除するにはどうすればよいですか?

  22. 22

    オブジェクトキーを生成するにはどうすればよいですか?

  23. 23

    オブジェクトのキー値を変更するにはどうすればよいですか?

  24. 24

    オブジェクトキーの初期値を設定するにはどうすればよいですか?

  25. 25

    jsonオブジェクトを配列にプッシュするときに特定のキーを省略するにはどうすればよいですか?

  26. 26

    Google App Engineにキャッシュされているユーザーオブジェクトを更新するにはどうすればよいですか?

  27. 27

    Jackson /他のライブラリを使用してjson応答オブジェクトを優先フォーマットにマッピングするにはどうすればよいですか?

  28. 28

    Jackson /他のライブラリを使用してjson応答オブジェクトを優先フォーマットにマッピングするにはどうすればよいですか?

  29. 29

    同じ優先度で優先度キューに追加される「サイド」オブジェクトを変更することはできますか?

ホットタグ

アーカイブ