C++ 查找對象算法

C++ 的查找算法用於在一個指定序列中搜索一個指定值或者一個值序列。

算法1:查找特定元素

find (beg, end, val)

查找由迭代器beg和end所指示的序列中第一個等於val的元素,返回該元素的迭代器。

find_if (beg, end, unaryPred)

查找由迭代器beg和end所指示的序列中第一個滿足一元謂詞 unaryPred 的元素,返回該元素的迭代器。

find_if_not (beg, end, unaryPred)

查找由迭代器beg和end所指示的序列中第一個不滿足一元謂詞 unaryPred 的元素,返回該元素的迭代器。

find_first_of (beg1, end1, beg2, end2)

查找子序列(由 beg2,end2 指示)中任意一個元素在序列(由 beg1,end1 指示)中首次出現的位置,返回該位置相應的迭代器。

注意:上述四個算法在未查找到相應元素時,返回輸入序列的尾後迭代器,即 end。

算法2:查找字序列 

search (beg1, end1, beg2, end2)

在由迭代器 beg1 和 end1 所指示的序列中,返回由迭代器 beg2 和 end2 所指示的子序列首次出現的位置。

find_end (beg1, end1, beg2, end2)

在由迭代器 beg1 和 end1 所指示的序列中,返回由迭代器 beg2 和 end2 所指示的子序列最後一次出現的位置。

算法3:統計

count (beg, end, val)

統計由迭代器beg和end所指示的序列中有多又個元素等於 val,並返回該值。

count_if (beg, end, unaryPred)

統計由迭代器beg和end所指示的序列中有多又個元素滿足一元謂詞 unaryPred,並返回該值。

算法4:滿足性 all / any / none

all_of (beg, end, unaryPred)

查考由迭代器beg和end所指示的序列中是否所有元素都滿足一元謂詞 unaryPred,若全滿足則返回 true,否則返回 false。

any_of (beg, end, unaryPred)

查考由迭代器beg和end所指示的序列中是否存在元素滿足一元謂詞 unaryPred,若存在則返回 true,否則返回 false。

all_of (beg, end, unaryPred)

查考由迭代器beg和end所指示的序列中的所有元素是否都不一元謂詞 unaryPred,若全不滿足則返回 true,否則返回 false。

注意:若輸入序列爲空,則 all_of 和 none_of 返回 true,any_of 返回 false。

算法5:查重 adjacent

adjacent_find (beg, end)

在由迭代器beg和end所指示的序列中,返回第一對相鄰重複元素中前者的迭代器。若序列中無相鄰重複元素,則返回 end。

adjacent_find (beg, end, binaryPred)

在由迭代器beg和end所指示的序列中,返回第一對滿足二元謂詞 binaryPred 的相鄰元素中前者的迭代器。若序列中無這樣的相鄰元素,則返回 end。

search_n (beg, end, count, val)

在由迭代器beg和end所指示的序列中,返回指向第一串長度爲 count 且都等於 val 的子序列的首迭代器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章