C 之sort 函式用法集合

2021-09-11 21:38:33 字數 2897 閱讀 3615

defined in header

對陣列或容器內區間[first,last]中的元素進行特定的排序

template< class randomit >

void

sort

( randomit first, randomit last )

;template< class randomit >

constexpr void

sort

( randomit first, randomit last )

;

使用operator<比較元素,預設為由小到大排序

template< class randomit, class compare >

void

sort

( randomit first, randomit last, compare comp )

;template< class randomit, class compare >

constexpr void

sort

( randomit first, randomit last, compare comp )

;

使用給定的二元比較函式comp比較元素,自定義比較順序

sort

(v.begin()

,v.end()

);//預設排序

sort

(v.begin()

,v.end()

,comp)

;//自定義排序

#include

#include

using namespace std;

intmain()

;sort

(a,a+10)

;for

(int i=

0;i<

10;i++

)return0;

}

以容器vector為例

#include

#include

#include

using namespace std;

intmain()

;sort

(v.begin()

,v.end()

);for(

int i=

0;i<

10;i++

) cout

}

自定義排序,也就是給sort第三個引數設定特定的比較函式,改變排序策略。有兩種方法,一種是定義bool函式,第二種是使用operator過載()運算。

1.

bool comp

(const

int a,

const

int b)

2.struct

}comp;

#include

#include

#include

using namespace std;

bool com

(const

int a,

const

int b)

struct

}cmp;

intmain()

;sort

(v.begin()

,v.end()

,com)

;//由小到大排序

for(

int i=

0;i<

10;i++

) cout

(v.begin()

,v.end()

,cmp)

;//由大到小排序

for(

int i=

0;i<

10;i++

) cout

}

也可以使用函式greaterless來實現由大到小,和由小到大的排序

#include

#include

#include

using namespace std;

intmain()

;sort

(v.begin()

,v.end()

,greater<

int>()

);//由大到小排序

for(

int i=

0;i<

10;i++

) cout

(v.begin()

,v.end()

,less<

int>()

);//由小到大排序

for(

int i=

0;i<

10;i++

) cout

}

#include

#include

#include

using namespace std;

intmain()

;// sort using a lambda expression

sort

(v.begin()

, v.

end(),

(int a,

int b));

for(

int i=

0;i<

10;i++

) cout

}

C 中sort函式用法

一 為什麼要用c 標準庫里的排序函式 sort 函式是c 一種排序方法之一,學會了這種方法也打消我學習c 以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間複雜度為n log2 n 執行效率較高!二 c 標準庫里的排序函式的使用方法 i sort函式...

C 中sort函式用法

排序示例 輸入兩個數n,t,其中n是待排的結構體個數,t 0代表用降序排序,t 1表示用公升序排序 例如這樣 例示 jack 70 peter 96 tom 70 smith 67 從高到低 成績 peter 96 jack 70 tom 70 smith 67 從低到高 smith 67 tom ...

sort函式用法(三)(c )

問題描述 描述輸入10個整數,彼此以空格分隔 重新排序以後輸出 也按空格分隔 要求 1.先輸出其中的奇數,並按從大到小排列 2.然後輸出其中的偶數,並按從小到大排列。輸入任意排序的10個整數 0 100 彼此以空格分隔 輸出按照要求排序後輸出,由空格分隔 include include includ...