Fungsi isihan dalam C++ ialah fungsi perpustakaan algoritma STL yang berguna yang digunakan untuk mengisih elemen dalam bekas. Sintaks asasnya ialah: `sort(Iterator first, Iterator last)`, di mana pertama dan terakhir ialah iterator yang mentakrifkan kedudukan permulaan dan penamat bagi jujukan. Secara lalai, fungsi isihan diisih dalam tertib menaik, tetapi anda boleh menyesuaikan pengisihan dengan menyediakan fungsi perbandingan atau melebihkan `operator<`. Untuk objek jenis tersuai, fungsi perbandingan perlu disediakan.
Dalam C++, fungsi isihan ialah fungsi yang sangat berguna dalam perpustakaan algoritma STL (Standard Template Library), yang digunakan untuk mengisih elemen dalam bekas. Fungsi ini ditakrifkan dalam fail pengepala
isih adalah seperti berikut:
cpp
#include <algorithm> #include <vector> std::sort(Iterator first, Iterator last);
Di sini, pertama dan terakhir ialah iterator, yang mentakrifkan kedudukan permulaan dan penamat bagi urutan yang hendak diisih. Ambil perhatian bahawa lelaran terakhir menunjuk ke elemen seterusnya pada "kedudukan akhir" jujukan, jadi julat sebenar jujukan ialah [pertama, terakhir).
Fungsi isih mengisih elemen dalam tertib menaik secara lalai Jika anda perlu mengisih objek daripada jenis tersuai, anda mungkin perlu menyediakan fungsi perbandingan atau operator lebihan<.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi isih untuk mengisih vektor
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; }
Atur cara ini akan mengeluarkan: 1 2 5 8 9, iaitu elemen dalam vektor nombor dalam menaik pesanan Hasil tersusun.
Jika anda perlu mengisih objek daripada jenis tersuai, anda perlu menyediakan fungsi perbandingan atau operator beban lampau<. Sebagai contoh, katakan anda mempunyai kelas Orang yang mempunyai pembolehubah ahli umur, dan anda ingin mengisih objek Orang mengikut umur:
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; }
Program ini akan mengeluarkan nama dan umur setiap orang dalam susunan umur yang menaik. Ambil perhatian bahawa kami membebankan operator< supaya fungsi isihan tahu cara membandingkan objek Orang. Jika anda tidak mahu membebankan operator
Atas ialah kandungan terperinci Cara menggunakan fungsi isihan dalam c++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!