雙向鍊錶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一樣表明後面的符號為乙個型別...