c++STL中的find()函数 有两种使用方法

方法一

开头引头文件:中的函数
其调用形式为
find(start,end,value)
start搜寻的起点,end搜寻的终点,要寻找的value值; 如果没有找到,则返回end。函数的返回值为迭代器或指针,就是位置信息。
容器的表示方法
find(a.begin(),a.end(),value)
所有的返回,均是迭代器(容器)或指针(数组),而非是直观感觉上的索引下标。如果在查找范围内不存在,返回a.end(),这里需要注意的是,a.end()不在查找范围内。

STL的find函数的输入查找范围参数都是指针或是迭代器,返回的也是指针或是迭代器:
需要注意的是,find(start,end,xxx),end是不在查找范围的,因此常常使用返回是否等于end来判断是否查找成功

方法二:

各个容器自己实现的成员函数
vector没有实现find函数,除此之外,常见容器都实现了自己的find函数。
String是这一种顺序存储结构,其find函数返回的是下标索引。set,map,multiset,multimap都不是顺序索引的数据结构,所以返回的是迭代器。

1.数组的STL find查找:

int res[5] = { 0,1,2,3,4 };int *pos = find(res, res + 5, 5);//这里的查找范围是指针//res+5不在查找范围内if (pos == (res + 5))cout << "Couldn't find it";elsecout << "Find it!";

2.字符串string STL find查找:

string str = "abcd";if (find(str.begin(), str.end(), 'a') != str.end())//使用迭代器cout << "Find it!";elsecout << "Couldn't find it!";

3.字符串string自带方法find查找:

string str = "abcd";cout << str.find('a');//返回的是下标的值而不是上面的指针或是迭代器

要是没有找到,返回的是str::npos
注意,只有string的find方法是返回的下标,因为string是顺序索引,set,map,multiset,multimap都不是顺序索引的数据结构,所以返回的是迭代器。

c++STL中的find()函数 有两种使用方法相关推荐

  1. java random构造方法_Java中的Random()函数及两种构造方法

    Java中存在着两种Random函数: java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是 ...

  2. Json返回时间中出现乱码问题的两种解决方法

    Json返回时间中出现乱码问题的两种解决方法 参考文章: (1)Json返回时间中出现乱码问题的两种解决方法 (2)https://www.cnblogs.com/hanyinglong/archiv ...

  3. 在.NET中执行Async/Await的两种错误方法

    微信公众号:架构师高级俱乐部 关注可了解更多的编程,架构知识.问题或建议,请公众号留言; 如果你觉得此文对你有帮助,欢迎转发 在.NET中执行异步/等待的两种错误方法 在应用开发中,我们为了提高应用程 ...

  4. C语言malloc申请空间函数的两种返回方法

    测试ok,代码如下: /********************************************* 功能:malloc申请空间函数的两种返回方法* 作者:lml 时间:2020年4月1 ...

  5. Java中关于Arrays.sort的两种重载方法的理解

    前言 在java中重载排序方法的方法目前有两种,一种是实现Comparable接口的compareTo方法,还有一种是用比较器(comparator) 作为参数,其中比较器是实现了Comparator ...

  6. 计算机一级无法打开office,电脑中无法运行Office2016的两种解决方法

    最近,有些用户在电脑中安装完office2016后打开该程序时总是提示:无法启动此程序,因为计算机中丢失 api-ms-win-crt-stdio-l1-1-0.dll .那么,遇到这问题该怎么来解决 ...

  7. 【我的C语言学习进阶之旅】介绍一下NDK开发中关于JNI函数的两种注册方式:静态注册和动态注册

    目录 一.要介绍本篇博客的原因 二.静态注册 2.1 实现原理 2.2 实现过程 2.3 弊端 2.4 示例 三.动态注册 3.1 实现原理 3.2 实现过程 3.3 优点 3.4 示例 一.要介绍本 ...

  8. python函数的两种嵌套方法

    函数的嵌套有两种方式: 交叉嵌套 回环嵌套 交叉嵌套 交叉嵌套的方式是在本函数中调用同一级或上一级函数的嵌套方法: def func(foo):print(1)foo()print(3)def a() ...

  9. 风控模型中特征重要度的两种筛选方法

    在采用决策树算法建立模型的场景中,例如GBDT.XGBoost.LightGBM.Random Forest等,我们习惯通过Feature Importance指标作为特征筛选的重要方法之一.从特征定 ...

最新文章

  1. 【Linux】一步一步学Linux——groupadd命令(87)
  2. TCP流量控制与拥塞控制区别
  3. 为什么现在老师这么难,值得大家深思
  4. java隐含转化_java中自动转换和强制转换还有隐含转换
  5. Codeforces Round #381 (Div. 2)
  6. Etherchannel 备忘
  7. Python一课一练(网站项目做单元测试)
  8. react 对象渲染_不要过度使用React.useCallback()
  9. BERT中进行NER为什么没有使用CRF,我们使用DL进行序列标注问题的时候CRF是必备么?...
  10. 电商平台环境下的图像分析在线服务产品——电商图像分析
  11. 人体识别_你知道人脸识别,但你知道人体识别吗?ReID技术了解一下!
  12. Mac苹果电脑加密视频播放器使用教程
  13. iText PDF设置字体样式
  14. 软件推荐,强力卸载软件geek uninstaller
  15. 亚马逊成功的四个关键因素
  16. Linux磁盘分区总结
  17. linux中添加中文输入法(汉语拼音)
  18. 清华大学公开课线性代数2——第12讲:复数与复矩阵
  19. Linux平台被勒索软件REvil盯上
  20. Phalanx 动态规划

热门文章

  1. html中图片的属性优化,Html标签元素在SEO中的优化方式(二)
  2. Android TextView设置ClickableSpan 点击结尾空白位置也响应点击的问题
  3. Python 3.6出现报错解决方案:No Python 3.6 installation was detected,无法卸载Python
  4. C和C++之用extern “C“实现它们之间的互调
  5. Android安全与逆向之在ubuntu上面搭建NDK环境
  6. 字符串之字符数组种是否所有的字符都只出现过一次
  7. python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息
  8. java数组转换成string_java面试复习重点:类的管理及常用工具,教你抓住面试重点
  9. 北大保送、硕博连读!《西游记》红孩儿扮演者现成中科院博士!
  10. 研究表明:喝酒“上脸”是基因突变,不仅容易老年痴呆,还容易得胃癌