在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...