STL原始碼剖析學習十八 仿函式

2022-08-18 16:45:08 字數 709 閱讀 4367

仿函式

又叫函式物件,可以達到「將整組操作當做演算法的引數」,定義於標頭檔案

stl仿函式應該具有配接的能力

一般寫法:

template

class

a

private

:

//}

呼叫方式

a()用class和struct都可以,注意class中必須要將過載()的函式寫在public內

stl不支援三元仿函式

定義兩個class,分別代表一元仿函式和二元仿函式

template

struct

unary_function

template

struct

binary_function

加法的仿函式:

template

struct plus: public binary_fuction

}

證同:將其引數原封不動的傳回,其中一些對其傳回的引數有刻意的選擇

為了間接性,為了抽象化而設計的間接層

template

struct identity : public unary_function

}

還有select1st,select2nd返回pair的第乙個和第二個元素

STL原始碼剖析 仿函式(函式物件)

7.1 仿函式概觀 功能分類 7.2 可配接的關鍵為了能夠擁有配接能力,每乙個仿函式必須定義自己的響應型別。這些型別是為了讓配接器能夠取出,獲得仿函式的某些資訊。7.4 算術類仿函式 加法 plus template struct plus public binary function 減法 min...

stl原始碼剖析 詳細學習筆記 仿函式

15 04 01 仿函式是為了演算法而誕生的,可以作為演算法的乙個引數,來自定義各種操作,比如比大小,返回bool值,對元素進行操作等 雖然這些函式也能實現,但是如果配合配接器 adapter 可以產生更靈活的變化。為了使物件像函式一樣,就必須過載operator unary function te...

STL原始碼剖析

這兩天略讀完了 stl原始碼剖析 之所以是略讀,就是只看大體,不講具現 這個詞在 深度探析c 物件模型 中比較多 已經看過好幾本c 的書了,感覺c 本身設計的博大精深,而c 編譯器就更是乙個神奇的東西,換句話說,你永遠不知道c 編譯器揹著你做了哪些出乎你意料的事 不扯遠了 我主要是想看stl容器的具...