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
- java8-謂詞(predicate)Java
- 小解謂詞 access 與 filterFilter
- 原子謂詞公式和合式公式公式
- Partition 表掃描的過程,使用key作為謂詞與使用非key值做謂詞....
- 傳說中的“謂詞越界“場景
- SQL 改寫系列七:謂詞移動SQL
- SQL 改寫系列六:謂詞推導SQL
- 謂詞條件是is null走索引嗎?Null索引
- 【SQL】Oracle查詢轉換之謂詞推送SQLOracle
- C#2.0謂詞的簡單應用C#
- 優化擁有謂詞or的子查詢優化
- Oracle查詢轉換(四)連線謂詞推入Oracle
- C和C++中所謂的陣列C++陣列
- Oracle 12CR2查詢轉換之謂詞推送Oracle
- 標準變成使謂詞(布林函式)返回true函式
- 大資料SQL中的Join謂詞下推,真的那麼難懂?大資料SQL
- 第二十一篇:最佳謂詞函式 --- 函式物件函式物件
- 基於CBO優化器謂詞選擇率的計算方法優化
- C++原始碼單詞掃描程式(詞法分析)C++原始碼詞法分析
- 執行計劃-4:謂詞的選擇時機與使用細節
- 【大資料】SparkSql連線查詢中的謂詞下推處理(一)大資料SparkSQL
- 【大資料】SparkSql 連線查詢中的謂詞下推處理 (二)大資料SparkSQL
- 謂詞下推:計算和儲存分開進行分析是低效的?
- 【TUNE_ORACLE】列出SQL謂詞中需要建立索引的列SQL參考OracleSQL索引
- 基於CBO最佳化器謂詞選擇率的計算方法
- 使用謂詞(NSPredicate)來提高集合遍歷與過濾查詢的效率
- [20150610]sql的謂詞中使用函式.txtSQL函式
- 人工智慧知識的表示——一節謂詞邏輯&產生式&框架人工智慧框架
- oracle 謂詞表示式對基數的影響(及11G改進)Oracle
- CBO的查詢轉換(謂詞推入與子查詢展開(Subquery Unnesting))
- 一次ORACLE SQL謂詞跨界導致的執行計劃不準OracleSQL
- 所謂BAPIAPI
- 恕我直言你可能真的不會java第3篇:Stream的Filter與謂詞邏輯JavaFilter
- 謂詞條件的資料型別隨意書寫對SQL效能影響巨大資料型別SQL
- 所謂併發程式設計,所謂有其三程式設計
- 無法顯示您正在查詢的頁面,因為使用了無效的方法(http謂詞)。HTTP