list類模板的排序函式sort 實現自定義排序

2021-10-04 15:19:14 字數 1156 閱讀 2457

雙向鍊錶list類模板有成員函式sort(),效果是從小到大排序。但事實上,sort()可以接受乙個函式指標或函式物件的引數, 實現個性化的排序需求。

【描述】

程式填空,產生指定輸出:

#include

#include

#include

#include

using

namespace std;

intmain()

; list<

double

>

lst(a,a+5)

; lst.

sort

(//***********************************

//*********在此處補充你的**********

//***********************************);

for(list<

double

>

::iterator i = lst.

begin()

; i != lst.

end();

++i)

cout <<

* i <<

",";

return0;

}

【輸入】

無【輸出】

9.8,7.3,3.4,2.6,1.2,

【解答】

greater<

double

>

()

此處使用了stl類模板greater中的成員函式:

template

<

class

t>

struct greater:

public binary_functionbool

>

};

同理可以自行編寫函式物件實現個性化的排序。

【說明】

vector中的sort()可以接受rbegin(),rend()引數實現倒排。而list容器中的sort()函式不能接受這樣的引數,但能接受比較函式作為實參,在功能上算是一定的彌補。

list 模板類的簡單實現

最近學資料結構,於是嘗試著去實現了乙個 list 類,發現確實有很多問題,特別是類的繼承這一塊,有些問題搞不懂 這個 list 類只是乙個簡單的實現,只提供了基本的功能,也沒有邊界檢測什麼的,越界訪問的問題由使用者自己把握 很多功能都是沒有實現的,總得來說這是乙個比較裸的 list 模板類,沒有什麼...

類模板,模板類和函式模板,模板函式

單整數類 雙整數類 所以c艹跟其他強型別語言為我們提供了乙個所謂模版功能 變數型別 整數 類模板的重點是模板。表示的是乙個模板,專門用於產生類的模子。例子 1 template 2 class vector 3 使用這個vector模板就可以產生很多的class 類 vector vector ve...

C 中的模板(類模板 模板類 模板函式)

1 class 一般class用於定義類,在模板引入c 後,最初定義模板的方法為 template,這裡class關鍵字表明t是乙個型別 2 typename 為了避免class在這兩個地方的使用可能給人帶來混淆,所以引入了typename這個關鍵字,它的作用同class一樣表明後面的符號為乙個型別...