C++ 查找对象算法

12 篇文章 0 订阅
11 篇文章 0 订阅

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值