ユーザー定義型のベクトルを特定の変数でソートするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-15 01:36:02
オリジナル
195 人が閲覧しました

How to Sort a Vector of User-Defined Types by Specific Variables?

ベクトル内のユーザー定義型を特定の変数で並べ替える

ユーザー定義型のベクトルを特定の変数で並べ替えるにはには、標準ライブラリ ソートを使用するか、独自のソート関数を実装するかの 2 つのオプションがあります。

標準ライブラリ ソートを使用する

標準ライブラリ ソートは、次の場合に使用できます。ユーザー定義型は、「bool 演算子 < (const Type& other) const」とコピー コンストラクターを実装します。比較演算子は、型を比較す​​る意味のある方法を定義する必要があります。以下に例を示します。

struct MyType {
    int a;
    int b;
    bool operator<(const MyType& other) const {
        // Compare types based on a specific variable (e.g., a)
        return a < other.a;
    }
};
ログイン後にコピー

カスタム ソート関数の使用

代わりに、sort() の 3 番目の引数としてカスタム順序付け関数またはファンクターを指定することもできます。比較演算子の実装について。この関数は、必要な変数に基づいて型を比較す​​る必要があります。例:

bool type_is_less(const MyType& t1, const MyType& t2) {
    return t1.a < t2.a;
}

std::sort(moo.begin(), moo.end(), type_is_less);
ログイン後にコピー

このアプローチは、次の場合に役立ちます。

  • 比較演算子を実装できない、または実装したくない。
  • 構築されたものを並べ替える必要がある-in またはオーバーロードできないポインター型。
  • さまざまな時点で異なる基準を使用してシーケンスを並べ替える必要があります。

以上がユーザー定義型のベクトルを特定の変数でソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート