Cara mengisih bekas STL dalam C++: Gunakan fungsi sort() untuk mengisih bekas di tempatnya, seperti std::vector. Dengan bekas pesanan std::set dan std::map, elemen diisih secara automatik semasa sisipan. Untuk susunan isihan tersuai, anda boleh menggunakan kelas pembanding tersuai, seperti mengisih vektor rentetan mengikut abjad.
STL (Perpustakaan Templat Standard) menyediakan satu set algoritma tujuan am yang fleksibel dan cekap untuk melaksanakan pelbagai operasi pada bekas, termasuk pengisihan. Bahagian berikut menerangkan beberapa cara biasa untuk mengisih bekas STL dalam C++.
std::sort()
fungsi ialah fungsi paling mudah dalam C++ untuk pengisihan bekas. Ia menerima rujukan atau penunjuk kepada bekas sebagai input dan mengisih elemennya pada tempatnya. Contoh berikut menunjukkan cara menggunakan fungsi sort()
untuk mengisih std::vector
: std::sort()
函数是 C++ 中进行容器排序最简单的函数。它接受一个容器的引用或指针作为输入,并将其元素原地排序。以下示例演示如何使用 sort()
函数对一个 std::vector
进行排序:
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> v = {3, 1, 4, 2, 5}; // 使用 sort() 函数对向量进行排序 std::sort(v.begin(), v.end()); // 打印排序后的向量 for (int num : v) { std::cout << num << " "; } return 0; }
输出:
1 2 3 4 5
std::set
和 std::map
是 C++ 中的有序容器,它们维护自己的元素集合并在插入时自动对元素进行排序。以下示例展示如何使用 std::set
#include <iostream> #include <set> int main() { std::set<int> s = {3, 1, 4, 2, 5}; // 由于 std::set 是有序的,元素按升序存储 for (int num : s) { std::cout << num << " "; } return 0; }
Output:
1 2 3 4 5
std::set
dan std::map
ialah bekas yang dipesan dalam C++ yang mengekalkan set elemen mereka sendiri dan Isih elemen secara automatik. Contoh berikut menunjukkan cara menggunakan std::set
untuk mencipta dan mengisih set integer: #include <iostream> #include <vector> #include <algorithm> class StringComparator { public: bool operator()(const std::string& a, const std::string& b) const { return a < b; } }; int main() { std::vector<std::string> v = {"apple", "banana", "cherry", "dog", "elephant"}; // 使用自定义比较器对向量进行排序 std::sort(v.begin(), v.end(), StringComparator()); // 打印排序后的向量 for (const std::string& s : v) { std::cout << s << " "; } return 0; }
Output:
apple banana cherry dog elephant
Atas ialah kandungan terperinci Bagaimana untuk mengisih bekas C++ STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!