亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

c++中如何使用標準庫算法sort_c++ sort排序使用方法

尼克
發(fā)布: 2025-09-27 10:30:01
原創(chuàng)
1109人瀏覽過
std::sort是C++標準庫中的高效排序算法,需包含<algorithm>頭文件,使用隨機訪問迭代器對容器或數(shù)組排序,默認升序,支持自定義比較函數(shù)或lambda表達式實現(xiàn)降序或結(jié)構(gòu)體排序,平均時間復(fù)雜度O(n log n),不適用于list等非隨機訪問容器。

c++中如何使用標準庫算法sort_c++ sort排序使用方法

在C++中,std::sort標準庫gorithm>頭文件提供的一個高效排序算法,用于對容器或數(shù)組中的元素進行排序。它使用高效的混合排序算法(通常是快速排序、堆排序和插入排序的結(jié)合),平均時間復(fù)雜度為 O(n log n)。

包含頭文件

使用 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::sort(arr, arr + 5); // 對前5個元素排序

對 std::vector 排序:

#include <vector>
std::vector<int> vec = {5, 2, 8, 1, 9};
std::sort(vec.begin(), vec.end());

自定義排序規(guī)則

可以通過傳入比較函數(shù)或 lambda 表達式來自定義排序順序。

法語寫作助手
法語寫作助手

法語助手旗下的AI智能寫作平臺,支持語法、拼寫自動糾錯,一鍵改寫、潤色你的法語作文。

法語寫作助手31
查看詳情 法語寫作助手

降序排序示例:

std::sort(vec.begin(), vec.end(), [](int a, int b) {
??return a > b;
});

也可以寫成函數(shù)對象:

bool cmp(int a, int b) {
??return a > b;
}
std::sort(vec.begin(), vec.end(), cmp);

對結(jié)構(gòu)體或類排序時,同樣適用。例如:

struct Student {
??std::string name;
??int score;
};

std::vector<Student> students = {{"Alice", 85}, {"Bob", 90}, {"Charlie", 70}};

std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
??return a.score > b.score; // 按分數(shù)從高到低排序
});

注意事項

確保傳入的迭代器是隨機訪問迭代器(如 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é)教程(入門到精通)
c++速學(xué)教程(入門到精通)

c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
熱門教程
更多>
相關(guān)推薦
熱門推薦
最新課程
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號