C 常用查詢演算法

2021-10-02 08:01:49 字數 1927 閱讀 3527

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 個元...