Maison > développement back-end > C++ > le corps du texte

Comment utiliser la fonction de tri en C++

小老鼠
Libérer: 2024-03-25 17:58:47
original
1070 Les gens l'ont consulté

La fonction de tri en C++ est une fonction de bibliothèque d'algorithmes STL utile utilisée pour trier les éléments dans un conteneur. Sa syntaxe de base est : `sort(Iterator first, Iterator last)`, où first et last sont des itérateurs qui définissent les positions de début et de fin de la séquence. Par défaut, la fonction de tri trie par ordre croissant, mais vous pouvez personnaliser le tri en fournissant une fonction de comparaison ou en surchargeant `operator<`. Pour les objets de types personnalisés, des fonctions de comparaison doivent être fournies.

Comment utiliser la fonction de tri en C++

En C++, la fonction de tri est une fonction très utile dans la bibliothèque d'algorithmes STL (Standard Template Library), qui permet de trier les éléments dans le conteneur. Cette fonction est définie dans le fichier d'en-tête , vous devez donc inclure ce fichier d'en-tête avant de l'utiliser. La syntaxe de base de la fonction

sort est la suivante :

cpp

#include <algorithm>  
#include <vector>  
  
std::sort(Iterator first, Iterator last);
Copier après la connexion

Ici, first et last sont des itérateurs, qui définissent les positions de début et de fin de la séquence à trier. Notez que le dernier itérateur pointe vers l'élément suivant à la "position de fin" de la séquence, donc la plage réelle de la séquence est [premier, dernier).

La fonction de tri trie les éléments par ordre croissant par défaut. Si vous devez trier des objets d'un type personnalisé, vous devrez peut-être fournir une fonction de comparaison ou un opérateur de surcharge<.

Voici un exemple simple qui montre comment utiliser la fonction de tri pour trier un vecteur :

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;  
}
Copier après la connexion

Ce programme affichera : 1 2 5 8 9, qui sont les éléments du vecteur de nombres par ordre croissant. commander Résultats organisés.

Si vous devez trier des objets d'un type personnalisé, vous devez fournir une fonction de comparaison ou un opérateur de surcharge<. Par exemple, supposons que vous ayez une classe Person qui a une variable membre age et que vous souhaitiez trier les objets Person par âge :

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;  
}
Copier après la connexion

Ce programme affichera le nom et l'âge de chaque personne par ordre croissant d'âge. Notez que nous surchargeons Operator< afin que la fonction de tri sache comment comparer les objets Person. Si vous ne souhaitez pas surcharger Operator

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal