本博客是转载其他大佬的文章,觉得他写的很好所以转载。侵权删除
1、
find()函数的调用形式为 find(start,end,value)
start搜寻的起点,end搜寻的终点,要寻找的value值
容器的表示方法:find(a.begin(),a.end(),value)
数组的表示方法:find(a,a+length,value)
所有的返回,均是迭代器(容器)或指针(数组),而非是直观感觉上的索引下标。如果在查找范围内不存在,返回a.end(),这里需要注意的是,a.end()不在查找范围内。
2.
vector没有实现find函数,除此之外,常见容器都实现了自己的find函数。
这个案例是洛谷p1540
#include<iostream> #include<algorithm> #include<vector> using namespace std; int main() { int m,n,t,cnt=0; cin>>m>>n; vector<int> v; while(cin>>t) { if(find(v.begin() , v.end()) , t) == v.end()) { v.push_back(t); cnt++; } if(v.size()>m) v.erase(v.begin()); } cout<<cnt; return 0; }
String是这一种顺序存储结构,其find函数返回的是下标索引。set,map,multiset,multimap都不是顺序索引的数据结构,所以返回的是迭代器。
3.
如果元素不在
对于返回迭代器的查找,通过判断find(a.begin(),a.end(),value)==a.end(),来判断元素是否存在
对于string,通过a.find(value)==string::npos判断
————————————————
版权声明:本文为CSDN博主「策马奔腾向前冲」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40597059/article/details/85369898
版权声明:本文为CSDN博主「策马奔腾向前冲」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40597059/article/details/85369898
4、
STL的两种find()函数的使用
第一种,algorithm头文件的find()。
使用方法:find(begin,end,value)
解释:第一个参数是容器或者数组的起始地址(容器.begin()或者数组名),也可以是任意地址,不非法即可;第二个参数是结束查找的地址(容器.end()或者数组名+长度),value是想要查找的字符或者字符串。查找成功将返回迭代器(容器)或者指针(数组),否则返回end()。
使用方法:find(begin,end,value)
解释:第一个参数是容器或者数组的起始地址(容器.begin()或者数组名),也可以是任意地址,不非法即可;第二个参数是结束查找的地址(容器.end()或者数组名+长度),value是想要查找的字符或者字符串。查找成功将返回迭代器(容器)或者指针(数组),否则返回end()。
第二种,string自带的find()。
使用方法:1.例如在string1中查找string2,string1.find(string2);将返回string2第一次在string1中出现的位置。
如果希望在特定位置开始查找,使用 string1.find(string2,location);
————————————————
版权声明:本文为CSDN博主「qq_Xiao菜鸡」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35130138/article/details/86482268
来源:https://www.cnblogs.com/fanwentao/p/12227975.html