C 常用的查詢演算法

2021-10-18 19:11:03 字數 2422 閱讀 5851

在iterator對標識元素範圍內,查詢一對相鄰重複元素,找到則返回指向這對元素的第乙個元素的迭代器。否則返回past-the-end。

vector<

int> vecint;

vecint.

push_back(1

);vecint.

push_back(2

);vecint.

push_back(2

);vecint.

push_back(4

);vecint.

push_back(5

);vecint.

push_back(5

);vector<

int>

::iterator it =

adjacent_find

(vecint.

begin()

, vecint.

end())

;//*it == 2

在有序序列中查詢value,找到則返回true。注意:在無序序列中,不可使用。

set<

int> setint;

setint.

insert(3

);setint.

insert(1

);setint.

insert(7

);setint.

insert(5

);setint.

insert(9

);bool bfind =

binary_search

(setint.

begin()

,setint.

end(),

5);

利用等於操作符,把標誌範圍內的元素與輸入值比較,返回相等的個數。

vector<

int> vecint;

vecint.

push_back(1

);vecint.

push_back(2

);vecint.

push_back(2

);vecint.

push_back(4

);vecint.

push_back(2

);vecint.

push_back(5

);int icount =

count

(vecint.

begin()

,vecint.

end(),

2);//icount==3

假設vector vecinta,vecinta包含1,3,5,7,9元素

//先定義比較函式

bool

greaterthree

(int inum)

else

}

int icount =

count_if

(vecinta.

begin()

, vecinta.

end(

), greaterthree)

;//此時icount == 4

find: 利用底層元素的等於操作符,對指定範圍內的元素與輸入值進行比較。當匹配時,結束搜尋,返回該元素的迭代器。

equal_range: 返回一對iterator,第乙個表示lower_bound,第二個表示upper_bound。

vector<

int> vecint;

vecint.

push_back(1

);vecint.

push_back(3

);vecint.

push_back(5

);vecint.

push_back(7

);vecint.

push_back(9

);vector<

int>

::iterator it =

find

(vecint.

begin()

, vecint.

end(),

5);//*it == 5

find_if: 使用輸入的函式代替等於操作符執行find。返回被找到的元素的迭代器。

假設vector vecinta,vecinta包含1,3,5,3,9元素

vector<

int>

::it =

find_if

(vecint.

begin()

,vecint.

end(

),greaterthree)

;

此時 *it==3, *(it+1)==5, *(it+2)==3, *(it+3)==9

C 常用查詢演算法

find 查詢元素 find if 按條件查詢元素 adjacent find 查詢相鄰重複元素 binary search 二分查詢演算法 count 統計元素個數 count if 按條件統計元素個數 1 find 查詢指定元素,返回找到的指定元素的迭代器,找不到則返回結束迭代器 函式原型 fi...

c 常用查詢演算法

演算法簡介 find 查詢元素 find if 按條件查詢元素 adjacent find 查詢相鄰重複元素 binary search 二分查詢法 count 統計元素個數 count if 按條件統計元素個數 find 功能描述 查詢指定元素,找到返回指定元素的迭代器,找不到返回結束迭代器end...

常用的查詢演算法

1 mid low high 2 2 當k arr mid 時,low mid 1,並重複1 當k 當k arr mid 時,找到,結束。直到low high,還沒找到那麼說明該關鍵字不存在。核心 實現 演算法步驟 1 第一步確定查詢節點在那個表中的那一塊。2 第二步在確定的塊中找到該節點。1 雜湊...