STL中的find函数

如何使用STL进行查找?几种常用的容器vector、list、stack、map、set都不带内置的查找函数,统一由算法库提供,就是要包含头文件

#include <algorithm>

通用的查找算法有find()find_if(),满足基本的查找功能,像for_each(), count(), count_if() 一样,这些算法也使用iterator范围,这个范围指出一个list或任意 其他容器中的一部分来处理。通常首iterator指着开始的位置,次iterator指着停止处理的地方。由次iterator指出的元素不被处理。

“find()函数”

 

输出:

Found:Pineapple

如果没有找到指出的对象,就会返回Fruit.end()的值,要是找到了就返回一个指着找到的对象的iterator。
值得注意的是,这里find函数的最后一个参数,我认为需要是简单简单类型的内容,或者是缺省类型,如string, int, char, double, float等,如果你想用一个自定义类型的数据作为查找依据则会出错
如,有这样的数据结构:

这里find函数是不能完成查询的,最简单的原因就是它无法知道通过对比MyType的哪项完成查询。

所以,在这样的情况下有两种选择:

一种是写一个查找条件函数,利用find_if(),

一种就是自己写查询函数。

当然推荐第一种,将在一篇文章中讲解find_if()的用法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值