Maison >développement back-end >C++ >Le tri de bibliothèque standard peut-il gérer le tri des types définis par l'utilisateur ?
Tri des types définis par l'utilisateur avec le tri de bibliothèque standard
Tri d'un vecteur de types définis par l'utilisateur (UDT) par une variable membre spécifique est une tâche commune. La fonction de tri de bibliothèque standard peut effectuer cette opération si certains critères sont remplis.
Le tri de bibliothèque standard peut-il gérer le tri UDT ?
Oui, le tri de bibliothèque standard peut être utilisé pour organiser les UDT en fonction d'une variable membre. Cela nécessite deux éléments clés :
Exemple avec opérateur Surcharge :
struct MyType { int a; int b; bool operator<(const MyType& other) const { // Custom comparison logic based on 'a' } };
Exemple avec une fonction de commande personnalisée :
Vous pouvez également transmettre une fonction de commande personnalisée comme argument à sort() au lieu d'implémenter l'opérateur <:
bool compareMyType(const MyType& t1, const MyType& t2) { // Custom comparison logic based on 'a' }
Dans les deux cas, vous pouvez trier votre vecteur UDT en utilisant :
std::sort(moo.begin(), moo.end()); // for operator overload std::sort(moo.begin(), moo.end(), compareMyType); // for custom function
Notez que la logique de comparaison (basée sur a) doit être cohérente avec l'ordre de tri que vous désirez (par exemple, du plus bas au plus élevé, du plus élevé au plus bas).
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!