關於c 中庫函式說明

2021-07-27 21:00:53 字數 1848 閱讀 8769

對陣列進行排序,在c++中有庫函式幫我們實現,這們就不需要我們自己來程式設計進行排序了。

(一)為什麼要用c++標準庫里的排序函式

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

(二)c++標準庫里的排序函式的使用方法

i)sort函式包含在標頭檔案為#include的c++標準庫中,呼叫標準庫里的排序方法可以不必知道其內部是如何實現的,只要出現我們想要的結果即可!

ii)sort函式有三個引數:

(1)第乙個是要排序的陣列的起始位址。

(2)第二個是結束的位址(最後一位要排序的位址)

(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法是從小到大排序。

sort函式使用模板:

sort(start,end,排序方法)

下面就具體使用sort()函式結合對陣列裡的十個數進行排序做乙個說明!

例一:sort函式沒有第三個引數,實現的是從小到大

1 #include2

3 #include4

using

namespace

std;

5int

main()6;

8for(int i=0;i<10;i++)

9 cout

10 sort(a,a+10

);11

for(int i=0;i<10;i++)

12 cout

13return0;

14 }

例二

通過上面的例子,會產生疑問:要實現從大到小的排序腫麼辦?

這就如前文所說需要在sort()函式裡的第三個引數裡做文章了,告訴程式我要從大到小排序!

需要加入乙個比較函式 complare(),此函式的實現過程是這樣的

1

2

3

4

boolcomplare(inta,intb)

這就是告訴程式要實現從大到小的排序的方法!

1 #include2 #include3

using

namespace

std;

4bool complare(int a,intb)5

8int

main()9;

11for(int i=0;i<10;i++)

12 cout

13 sort(a,a+10,complare);//

在這裡就不需要對complare函式傳入引數了,

14//

這是規則

15for(int i=0;i<10;i++)

16 cout

17return0;

18 }

假設自己定義了乙個結構體node

1

struct

node

2

有乙個node型別的陣列node arr[100],想對它進行排序:先按a值公升序排列,如果a值相同,再按b值降序排列,如果b還相同,就按c降序排列。就可以寫這樣乙個比較函式:

以下是**片段:

1

bool

cmp(node x,node y)

2

C 輸入函式說明

輸入原理 程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候 當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入。cin 功...

c 中string的常用函式說明

string可以說是是字元陣列的公升級版,使用更加啊方便,不容易出錯。本文對string的常用函式進行簡單介紹,做到會用即可。string中的常用函式分為四類,即賦值,新增,比較和刪除。一 賦值 1.str adf 2.str.assign adf str.assign str1 將括號中的字串賦值...

ASP中的函式說明

array function 返回乙個陣列 syntax array list arguments 字元,數字均可 example dim myarray for i 1 to 7 redim preserve myarray i myarray i weekdayname i next resul...