stl中sort函式詳解

2021-07-03 10:32:29 字數 602 閱讀 1800

1. sort 函式的形式:

sort(first_pointer,first_pointer+n,cmp)

函式的第乙個引數是陣列的首位址,一般寫上陣列名就可以,因為陣列名是乙個指標常量。第二個引數相對較好理解,即首位址加上陣列的長度n。最後乙個引數是比較函式的名稱(一般比較函式名字都用cmp,當然這個名字是什麼都所謂),這個比較函式可以不寫,即第三個引數可以預設。此時sort預設按陣列公升序排序。

2. 應用舉例

#include#include#includeusing namespace std;

templatevoid print(iterator begin,iterator end)

bool cmpint(const int &a,const int &b)

解析: ①用的是兩個引數的sort版本

②採用函式指標的形式,這裡第三個引數只需要寫出自己在外邊定義的函式名稱即可。

③採用比較器(函式運算子)的形式,事實上c++提供的這種

函式運算子從某種意義上來講就是取代c語言中中的

函式指標。而且比它更靈活,因為自己可以定義自己所需要的規則。

STL庫中快排sort函式詳解

使用 include using namespace std 作用 排序 時間複雜度 n lg n 實現原理 sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系統會根據你的資料形式和資料量自動選擇合適的排序方法,這並不是說它每次排序只選擇一種方法,它是在...

STL中的sort函式

b站二面時,面試官問了乙個問題,沒打出來感覺挺虧的。問題是 stl中的sort函式用的什麼排序演算法?這個問題我之前看面經的時候,看了一眼,但是當時沒有仔細研究過。大致知道裡面用了快速排序。stl的sort 演算法,資料量大時採用quick sort,分段遞迴排序。一旦分段後的資料量小於某個閾值,為...

STL中sort 函式的用法

在做acm題的過程中,演算法中經常會用到排序的處理,自己寫排序有點麻煩,最主要是記不住排序演算法的 stl中的sort函式有兩種 template ranit void sort ranit fist,ranit last template ranit,class pred void sort ra...