find //查詢元素
find_if //按條件查詢元素
adjacent_find //查詢相鄰重複元素
binary_search //二分查詢演算法
count //統計元素個數
count_if //按條件統計元素個數
(1)find
查詢指定元素,返回找到的指定元素的迭代器,找不到則返回結束迭代器
函式原型:
find(iterator beg,iterator end,value);
示例:
#include
using
namespace std;
#include
#include
#include
//查詢自定義資料型別
void
test01()
vector<
int>
::iterator it =
find
(v.begin()
,v.end()
,200);
if(it==v.
end())
else
}class
person
//過載==號,底層find知道如何對比person資料型別
bool
operator==(
const person &p)
else}}
;void
test02()
else
}
(2)find_if
函式原型:
find_if(iterator beg,iterator end,_pred);
按值查詢元素,找到返回指定位置的迭代器,找不到返回結束迭代器
示例
class greaterfive
}; //1、按內建資料型別按條件查詢
void test01()
vector::iterator it = find_if(v.begin(),v.end(),greaterfive());
if(it==v.end())
};class greater20
}; void test02()
//注意:容器中必須是有序序列,若是無需序列,結果未知。
//查詢容器中是否有3元素
bool ret =
binary_search
(v.begin()
,v.end()
,11);
if(ret)
else
}
(5)count
統計元素個數
函式原型:
cout(iterator beg,iterator end,value);//統計元素出現次數
示例:
class
person
bool
operator==(
const person &p)
else}}
;//count演算法
void
test01()
(6)count_if
按條件統計元素個數
函式原型:
count_if(iterator beg,iterator end,_pred) ; //按條件統計元素出現次數
示例:
//人員構造
class
person};
//大於20的整數謂語
class
greater20};
//大於20歲的人員的謂語
class
greaterage20};
//count_if演算法
void
test01()
c 常用查詢演算法
演算法簡介 find 查詢元素 find if 按條件查詢元素 adjacent find 查詢相鄰重複元素 binary search 二分查詢法 count 統計元素個數 count if 按條件統計元素個數 find 功能描述 查詢指定元素,找到返回指定元素的迭代器,找不到返回結束迭代器end...
C 常用的查詢演算法
在iterator對標識元素範圍內,查詢一對相鄰重複元素,找到則返回指向這對元素的第乙個元素的迭代器。否則返回past the end。vector int vecint vecint.push back 1 vecint.push back 2 vecint.push back 2 vecint....
C 常用查詢演算法總結(二)
查詢是在大量的資訊中尋找乙個特定的資訊元素,在計算機應用中,查詢是常用的基本運算,例如編譯程式中符號表的查詢,欄位的查詢,等等。1 插值查詢 在介紹插值查詢之前,首先考慮乙個新問題,為什麼上述演算法一定要是折半,而不是折四分之一或者折更多呢?同樣的,比如要在取值範圍1 10000 之間 100 個元...