C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 定義
標準庫定義的函數對象(Library-Defined Function Objects):標準庫在頭文件functional中定義了一組表示算術運算符、關系運算符和邏輯運算符的類,每個類分別定義了一個執行命名操作的調用運算符。
這些類都被定義為模板的形式,可以為其指定具體的應用類型(即調用運算符的形參類型)。
eg.
輸出結果為
b1 a31 30 02. 標準庫函數對象列表:
| plus | equal_to | logical_and |
| minus | not_equal_to | logical_or |
| multiplies | greater | logical_not |
| divides | greater_equal | |
| modulus | less | |
| negate | less_equal |
3. 可以比較指針
eg.
//lambda表達式是比較兩個字符串大小string a1 = "b1";string b1 = "a1";vector<string*> nameTable = {&a1 , &b1}; // vector of pointerssort(nameTable.begin(), nameTable.end(), [](string* a, string* b) { return *a < *b; });for_each(nameTable.begin(), nameTable.end(), [](string* s){std::cout << *s << endl; }); //標準庫比較兩個指針的內存地址, vector<string*> nameTable2 = { &a1 , &b1 }; // vector of pointers sort(nameTable2.begin(), nameTable2.end(), less<string*>());for_each(nameTable2.begin(), nameTable2.end(), [](string* s){std::cout << *s << endl; });輸出:
a1 b1 b1 a1【引用】
[1] 代碼functionObject.h
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha