Heim > Backend-Entwicklung > C++ > So verwenden Sie die Sortierfunktion in C++

So verwenden Sie die Sortierfunktion in C++

小老鼠
Freigeben: 2024-03-25 17:58:47
Original
1076 Leute haben es durchsucht

Die Sortierfunktion in C++ ist eine nützliche STL-Algorithmus-Bibliotheksfunktion, die zum Sortieren von Elementen in einem Container verwendet wird. Seine grundlegende Syntax lautet: „sort(Iterator first, Iterator last)“, wobei first und last Iteratoren sind, die die Start- und Endpositionen der Sequenz definieren. Standardmäßig sortiert die Sortierfunktion in aufsteigender Reihenfolge, Sie können die Sortierung jedoch anpassen, indem Sie eine Vergleichsfunktion bereitstellen oder „operator<“ überladen. Für Objekte benutzerdefinierter Typen müssen Vergleichsfunktionen bereitgestellt werden.

So verwenden Sie die Sortierfunktion in C++

In C++ ist die Sortierfunktion eine sehr nützliche Funktion in der STL-Algorithmusbibliothek (Standard Template Library), die zum Sortieren der Elemente im Container verwendet wird. Diese Funktion ist in der Header-Datei definiert, daher müssen Sie diese Header-Datei einschließen, bevor Sie sie verwenden. Die grundlegende Syntax der

sort-Funktion lautet wie folgt:

cpp

#include <algorithm>  
#include <vector>  
  
std::sort(Iterator first, Iterator last);
Nach dem Login kopieren

Hier sind „first“ und „last“ Iteratoren, die die Start- und Endpositionen der zu sortierenden Sequenz definieren. Beachten Sie, dass der letzte Iterator auf das nächste Element an der „Endposition“ der Sequenz zeigt, sodass der tatsächliche Bereich der Sequenz [erster, letzter) ist.

Die Sortierfunktion sortiert Elemente standardmäßig in aufsteigender Reihenfolge. Wenn Sie Objekte eines benutzerdefinierten Typs sortieren müssen, müssen Sie möglicherweise eine Vergleichsfunktion oder einen Überladungsoperator bereitstellen.

Hier ist ein einfaches Beispiel, das zeigt, wie die Sortierfunktion zum Sortieren eines Vektors verwendet wird:

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;  
}
Nach dem Login kopieren

Dieses Programm gibt Folgendes aus: 1 2 5 8 9, was den Elementen im Zahlenvektor in aufsteigender Reihenfolge entspricht bestellen Angeordnete Ergebnisse.

Wenn Sie Objekte eines benutzerdefinierten Typs sortieren müssen, müssen Sie eine Vergleichsfunktion oder einen Überladungsoperator< bereitstellen. Angenommen, Sie haben eine Person-Klasse, die über eine Alterselementvariable verfügt, und Sie möchten die Person-Objekte nach Alter sortieren:

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;  
}
Nach dem Login kopieren

Dieses Programm gibt den Namen und das Alter jeder Person in aufsteigender Reihenfolge des Alters aus. Beachten Sie, dass wir den Operator< überladen, damit die Sortierfunktion weiß, wie Personenobjekte verglichen werden. Wenn Sie den Operator

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Sortierfunktion in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage