C++謂詞
4.2 謂詞
4.2.1 謂詞概念
概念:
- 返回bool型別的仿函式稱為謂詞
- 如果operator()接受一個引數,那麼叫做一元謂詞
- 如果operator()接受兩個引數,那麼叫做二元謂詞
4.2.2 一元謂詞
示例:
#include <vector>
#include <algorithm>
//1.一元謂詞
struct GreaterFive{
bool operator()(int val) {
return val > 5;
}
};
void test01() {
vector<int> v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
vector<int>::iterator it = find_if(v.begin(), v.end(), GreaterFive());
if (it == v.end()) {
cout << "沒找到!" << endl;
}
else {
cout << "找到:" << *it << endl;
}
}
int main() {
test01();
system("pause");
return 0;
}
總結:引數只有一個的謂詞,稱為一元謂詞
4.2.3 二元謂詞
示例:
#include <vector>
#include <algorithm>
//二元謂詞
class MyCompare
{
public:
bool operator()(int num1, int num2)
{
return num1 > num2;
}
};
void test01()
{
vector<int> v;
v.push_back(10);
v.push_back(40);
v.push_back(20);
v.push_back(30);
v.push_back(50);
//預設從小到大
sort(v.begin(), v.end());
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
cout << endl;
cout << "----------------------------" << endl;
//使用函式物件改變演算法策略,排序從大到小
sort(v.begin(), v.end(), MyCompare());
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
int main() {
test01();
system("pause");
return 0;
}
總結:引數只有兩個的謂詞,稱為二元謂詞
相關文章
- C++ 一元謂詞對應的lambda表示式C++
- Java 8謂詞鏈Java
- 03-NSPredicate謂詞
- java8-謂詞(predicate)Java
- 5.1一階謂詞邏輯
- 原子謂詞公式和合式公式公式
- SQL 改寫系列六:謂詞推導SQL
- SQL 改寫系列七:謂詞移動SQL
- 傳說中的“謂詞越界“場景
- 【SQL】Oracle查詢轉換之謂詞推送SQLOracle
- CodeQL學習筆記(1)-QL語法(邏輯連線詞、量詞、聚合詞、謂詞和類)筆記
- 【GreatSQL最佳化器-02】索引和Sargable謂詞SQL索引
- 標準變成使謂詞(布林函式)返回true函式
- Oracle 12CR2查詢轉換之謂詞推送Oracle
- 大資料SQL中的Join謂詞下推,真的那麼難懂?大資料SQL
- [20201116]11g連線謂詞推入push_pred問題.txt
- C++ 統計單詞數C++
- C++原始碼單詞掃描程式(詞法分析)C++原始碼詞法分析
- 【TUNE_ORACLE】列出SQL謂詞中需要建立索引的列SQL參考OracleSQL索引
- 謂詞下推:計算和儲存分開進行分析是低效的?
- 執行計劃-4:謂詞的選擇時機與使用細節
- 【大資料】SparkSql連線查詢中的謂詞下推處理(一)大資料SparkSQL
- 【大資料】SparkSql 連線查詢中的謂詞下推處理 (二)大資料SparkSQL
- 人工智慧知識的表示——一節謂詞邏輯&產生式&框架人工智慧框架
- leetcode 127. 單詞接龍(C++)LeetCodeC++
- 恕我直言你可能真的不會java第3篇:Stream的Filter與謂詞邏輯JavaFilter
- 所謂併發程式設計,所謂有其三程式設計
- php->所謂"hook"PHPHook
- 聊聊所謂的cookieCookie
- C++詞彙集錦程式設計人必備C++程式設計
- 何謂 Linux 使用者?Linux
- 何謂中綴表示式
- us所謂的政治“精英”
- Python程式碼閱讀(第38篇):根據謂詞函式和屬性字串構造判斷函式Python函式字串
- 談所謂價值投資
- 所謂的職場祕籍
- 何謂開源程式設計?程式設計
- 仿函式是什麼?仿函式什麼時候必須繼承一元或者二元謂詞函式繼承