std::sort是C++標準庫中的高效排序算法,需包含<algorithm>頭文件,使用隨機訪問迭代器對容器或數(shù)組排序,默認升序,支持自定義比較函數(shù)或lambda表達式實現(xiàn)降序或結(jié)構(gòu)體排序,平均時間復(fù)雜度O(n log n),不適用于list等非隨機訪問容器。
在C++中,std::sort 是標準庫
使用 std::sort 前必須包含頭文件:
#include <algorithm>std::sort 的基本語法如下:
std::sort(起始迭代器, 結(jié)束迭代器);注意:排序范圍是[開始, 結(jié)束),即左閉右開區(qū)間。
立即學(xué)習(xí)“C++免費學(xué)習(xí)筆記(深入)”;
例如,對一個數(shù)組排序:
int arr[] = {5, 2, 8, 1, 9};對 std::vector 排序:
#include <vector>可以通過傳入比較函數(shù)或 lambda 表達式來自定義排序順序。
降序排序示例:
std::sort(vec.begin(), vec.end(), [](int a, int b) {也可以寫成函數(shù)對象:
bool cmp(int a, int b) {對結(jié)構(gòu)體或類排序時,同樣適用。例如:
struct Student {確保傳入的迭代器是隨機訪問迭代器(如 vector、array、普通指針),不支持 list 等不支持隨機訪問的容器。list 應(yīng)使用其成員函數(shù) sort()。
比較函數(shù)必須滿足“嚴格弱序”規(guī)則,即對于任意 a, b,cmp(a, a) 必須為 false,且若 cmp(a, b) 為 true,則 cmp(b, a) 應(yīng)為 false。
基本上就這些,std::sort 使用簡單且功能強大,是 C++ 中最常用的排序方式。以上就是c++++中如何使用標準庫算法sort_c++ sort排序使用方法的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號