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