ホームページ > バックエンド開発 > C++ > C++でsort関数を使う方法

C++でsort関数を使う方法

小老鼠
リリース: 2024-03-25 17:58:47
オリジナル
1079 人が閲覧しました

C の sort 関数は、コンテナ内の要素を並べ替えるのに使用される便利な STL アルゴリズム ライブラリ関数です。その基本的な構文は `sort(Iterator first, Iterator last)` です。first と last はシーケンスの開始位置と終了位置を定義する反復子です。デフォルトでは、sort 関数は昇順でソートしますが、比較関数を提供するか `operator<` をオーバーロードすることでソートをカスタマイズできます。カスタム タイプのオブジェクトの場合は、比較関数を提供する必要があります。

C++でsort関数を使う方法

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 << &#39; &#39;;  
    }  
      
    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 サイトの他の関連記事を参照してください。

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