C++的sort函數用于對容器中的元素進行排序。使用sort函數需要包含頭文件
下面是sort函數的基本用法:
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
// 對vec中的元素進行升序排序
std::sort(vec.begin(), vec.end());
// 輸出排序后的結果
for (int num : vec) {
std::cout << num << " ";
}
return 0;
}
在上面的例子中,我們使用sort函數對vector容器中的元素進行升序排序。sort函數接受兩個參數,第一個參數是要排序的元素范圍的起始位置,第二個參數是要排序的元素范圍的結束位置。
如果要對自定義類型的元素進行排序,需要提供一個比較函數,可以通過lambda表達式或者重載比較運算符來實現。比如對于自定義的Student結構體來說,可以這樣使用sort函數:
#include <algorithm>
#include <vector>
struct Student {
std::string name;
int score;
};
int main() {
std::vector<Student> students = {{"Alice", 85}, {"Bob", 90}, {"Charlie", 78}};
// 對students中的元素按照score進行升序排序
std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
return a.score < b.score;
});
// 輸出排序后的結果
for (const Student& student : students) {
std::cout << student.name << " " << student.score << std::endl;
}
return 0;
}
在上面的例子中,我們使用lambda表達式來定義比較函數,對Student結構體中的score進行升序排序。