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()的用法!

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值