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 的子序列的首迭代器。
。