標準ライブラリソートによるユーザー定義型のソート
質問:
標準ライブラリソートは可能ですかライブラリソート関数は、ライブラリ内の特定のフィールドに基づいてユーザー定義構造体のベクトルをソートするために使用されます。 structs?
例:
struct MyType { int a; int b; }; vector<MyType> moo; // Insert data into moo... // Sort moo by the value of the 'a' field
答え:
はい、標準ライブラリのソート関数はこのシナリオを処理できます。ユーザー定義型が特定の条件を満たす場合要件:
実装:
struct MyType { int a; int b; bool operator<(const MyType& other) const { // Implementation that compares the 'a' fields } // Copy constructor MyType(const MyType& other) : a(other.a), b(other.b) { } // Other constructors... };
順序付け関数を使用した代替アプローチ:
比較演算子のオーバーロードが不可能な場合は、順序付け関数またはfunctor は、sort 関数の 3 番目の引数として代わりに使用できます。
bool type_is_less(const MyType& t1, const MyType& t2) { // Comparison logic } std::sort(c.begin(), c.end(), type_is_less);
このアプローチは、次のような場合に有益です。
以上が標準ライブラリの並べ替え関数は、特定のフィールドに基づいてユーザー定義型を並べ替えることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。