C 中二元函式物件和二元謂詞

2021-10-04 10:29:57 字數 1364 閱讀 8040

在c++ stl演算法中,在演算法的輸入和輸出中,一定要分清是函式物件,還是謂詞,還是迭代器。

具體看如下**,注意看注釋:

#includeusing namespace std;

#include "string"

#include #include #include #include #include //二元函式物件

templateclass sumadd

};//函式模板 ==函式

template void funcshowelemt(t& t)

//普通函式

void funcshowelemt2(int& t)

//二元謂詞

templatebool mycompare(const t& a, const t& b)

void main04()

//transform 把運算結果的 迭代器的開始位置 返回出來

*/ transform(v1.begin(),v1.end(),v2.begin(),v3.begin(),sumadd());

for (vector::iterator it = v3.begin(); it != v3.end(); it++)

cout << endl;

}void main05()

for (vector::iterator it = v1.begin(); it != v1.end(); it++)

cout << endl;

for_each(v1.begin(),v1.end(),funcshowelemt2); //輸出:41 67 34 0 69 24 78 58 62 64

cout << endl;

sort(v1.begin(),v1.end(),mycompare);

for_each(v1.begin(),v1.end(),funcshowelemt2); //輸出: 0 24 34 41 58 62 64 67 69 78

cout << endl;

}class comparenocase

};void main06()

else

setset2;

set2.insert("bbb");

set2.insert("aaa");

set2.insert("ccc");

set::iterator it2 = set2.find("aaa");

if (it2 == set2.end())

else

/**輸出:

沒有 查詢到 aaa

不區分大小的的查詢 查詢到 aaa

*/}void main()

C 一元謂詞和二元謂詞

include include 演算法標頭檔案 include include using namespace std 返回型別為bool型別 的operator struct greatstruct for each需要使用的偽函式 template typename t void printer...

函式物件,一元謂詞,二元謂詞,預定義函式物件

find if sort for each 的使用 for each v1.begin v1.end showelemt 要使用預定義函式物件需要包含 functional 標頭檔案vector iterator it find if v1.begin v1.end myint sort v3.be...

函式物件二元函式 cpp

c stl基礎及應用 include include include include include include using namespace std 利用二元函式是學生成績公升序排列 函式物件是過載了operator 的類的乙個例項,operator 是函式呼叫運算子 標準c 庫根據oper...