find 是algorithm 库中的函数,所以使用的使用要引起该库
find的用法
1 查找指定的元素,默认是首次,若找到返回首次出现的坐标,找不到返回npos
2 从指定的位置之后开始查找,类1 类似,
3 容器内查找指定的元素,查找成功返回一个指向指定元素的迭代器,查找失败返回end迭代器
demo 演示
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
void test1(){
string str = "hello";
string str1 = "l";
string str2 = "z";
// 若包含返回首次出现的坐标
cout << str.find(str1) <<endl;
// 若不包含返回string::npos
cout << str.find(str2) <<endl;
}
void test2(){
string str = "abcabcabc";
string str1 = "c";
// 从第几个元素开始查找,下面就是从第四个元素开始查找首次出现c的位置
cout << str.find(str1,4) << endl;
}
void test3(){
// 容器内查找指定的元素
vector<int> ve = {10,20,30,40};
if (find(ve.begin(),ve.end(),30) != ve.end())
{
cout<<"YES"<< endl;
}
}
int main()
{
test1();
test2();
test3();
}
打印结果
需要注意的就是test3()
就是vector 中begin 和end 是向量中的首个和最后一个元素的引用,不是元素,
可以理解过从头到尾的迭代,中查找30 ,如果成功返回30的迭代器,不成功就返回end的迭代器.
如果想打印30的迭代器,可以打印指针