STL之介面卡

2021-10-04 10:15:26 字數 2075 閱讀 2701

(注意:需包含標頭檔案 functional)步驟

bind2nd 或者 bind1st 將兩個引數進行繫結

bind2nd 繫結順序是一致

類繼承 binary_function《型別1 ,型別2 ,返回值型別》

加 const 寫法

class

myprint

:public binary_function<

int,

int,

void

>};

void

test01()

cout <<

"請輸入累加的值"

<< endl;

int num;

cin >> num;

for_each

(v.begin()

, v.

end(),

bind2nd

(myprint()

, num));

}

步驟

一元取反 not1

類繼承 unary_function《型別1 ,返回值型別》

加const

二元取反 not2 寫法

class

greaterthenfive

:public unary_function<

int,

bool

>};

void

test02()

//二選一 第二個結合了bind2nd更深些

//vector::iterator pos = find_if(v.begin(), v.end(), not1( greaterthenfive()));

vector<

int>

::iterator pos =

find_if

(v.begin()

, v.

end(),

not1

(bind2nd

( greater<

int>()

,5))

);if(pos != v.

end())

else

vector<

int>v1;

for(

int i =

0; i <

10; i++

)sort

(v1.

begin()

, v1.

end(),

not2

( less<

int>()

));for_each

(v1.

begin()

, v1.

end(),

(int val));

}

步驟

ptr_fun 將函式指標 適配為函式物件 寫法

void

myprint3

(int val ,

int start)

void

test03()

cout <<

"請輸入累加起始值"

<< endl;

int num;

cin >> num;

//將 函式指標 適配成 函式物件 再用bind繫結引數

for_each

(v.begin()

, v.

end(),

bind2nd

(ptr_fun

( myprint3)

,num));

}

步驟

mem_fun_ref 存放物件本體

mem_fun 存放物件指標 (當成員是物件指標的情況,很少用到,這裡沒有舉例子) 寫法

class

person

void

showperson()

void

plusage()

string m_name;

int m_age;};

void

test04()

STL之介面卡

摘要 本文主要講了介面卡的一些內容,重要的是了解介面卡使用的步驟。1 include2 include3 include 4 include5 include 67 using namespace std 89 第一步 繫結 資料 bind2nd 10 繼承類 binary function 引數型...

STL之介面卡

摘要 本文主要講了介面卡的一些內容,重要的是了解介面卡使用的步驟。1 include2 include3 include 4 include5 include 67 using namespace std 89 第一步 繫結 資料 bind2nd 10 繼承類 binary function 引數型...

STL介面卡 函式介面卡

有時候需要對內建函式物件返回值進行進一步的簡單計算,或者填上多餘的引數,不能直接代入演算法。函式介面卡實現了這一功能,函式介面卡是將一種函式物件轉化為另一種符合要求的函式物件。函式介面卡可以分為4個大類 繫結介面卡 組合介面卡 指標函式介面卡和成員函式介面卡。需求 在遍歷容器的時候,將容器中的值全部...