C の sort 関数は、コンテナ内の要素を並べ替えるのに使用される便利な STL アルゴリズム ライブラリ関数です。その基本的な構文は `sort(Iterator first, Iterator last)` です。first と last はシーケンスの開始位置と終了位置を定義する反復子です。デフォルトでは、sort 関数は昇順でソートしますが、比較関数を提供するか `operator<` をオーバーロードすることでソートをカスタマイズできます。カスタム タイプのオブジェクトの場合は、比較関数を提供する必要があります。
C では、sort 関数は STL (Standard Template Library) アルゴリズム ライブラリの非常に便利な関数で、コンテナ内の要素を並べ替えるために使用されます。選別。この関数は
sort 関数の基本的な構文は次のとおりです。
cpp
#include <algorithm> #include <vector> std::sort(Iterator first, Iterator last);
ここで、最初と最後は反復子であり、シーケンスの開始位置と終了位置を定義します。整理される。最後の反復子はシーケンスの「終了位置」にある次の要素を指すため、シーケンスの実際の範囲は [first, last) であることに注意してください。
sort 関数は、デフォルトで要素を昇順に並べ替えます。カスタム タイプのオブジェクトを並べ替える必要がある場合は、比較関数またはオーバーロード演算子< を提供する必要がある場合があります。
次は、sort 関数を使用してベクトル
cpp
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> numbers = {5, 2, 8, 1, 9}; std::sort(numbers.begin(), numbers.end()); for (int num : numbers) { std::cout << num << ' '; } return 0; }
このプログラムは出力します: 1 2 5 8 9 は、数値ベクトルの要素を昇順に並べた結果です。
カスタム タイプのオブジェクトを並べ替える必要がある場合は、比較関数またはオーバーロード演算子<を提供する必要があります。たとえば、age メンバー変数を持つ Person クラスがあり、年齢で Person オブジェクトを並べ替えたいとします。
cpp
#include <iostream> #include <vector> #include <algorithm> class Person { public: std::string name; int age; Person(const std::string& name, int age) : name(name), age(age) {} // 重载 operator< 以便 sort 可以使用 bool operator<(const Person& other) const { return age < other.age; } }; int main() { std::vector<Person> people = { {"Alice", 30}, {"Bob", 20}, {"Charlie", 25} }; std::sort(people.begin(), people.end()); for (const auto& person : people) { std::cout << person.name << ": " << person.age << std::endl; } return 0; }
このプログラムは、各人の年齢を昇順で出力します。名前と年齢。 sort 関数が Person オブジェクトを比較する方法を認識できるように、operator< をオーバーロードしていることに注意してください。 Operator
以上がC++でsort関数を使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。