假如我有一个vector数组,
- 需要查询某个数是否在数组中,
- 某个数在数组中第一次出现的位置
这个时候就需要用到<algorithm>中的find函数,以及std中的distance函数
一、设置一个vector
#include<vector>
#include<iostream>
using namespace std;
int main(){
vector<int> avec{1,43,2,1,2,5,8,6};
for (int num:avec){
cout<<num<<" ";
}
return 0;
}
二、查找某个数是否在数组中
#include<vector>
#include<iostream>
#include<algorithm> // 头文件
using namespace std;
int main(){
vector<int> avec{1,43,2,1,2,5,8,6};
for (int num:avec){
cout<<num<<" ";
}
cout<<endl;
// 查找2和9是否在数组中
int wantToFind = 2; // 下次运行前改为9
if (find(avec.begin(),avec.end(),wantToFind)!=avec.end()){
// 找的结果迭代器没有超过数组长度,说明找到了
cout<<"yes, there is at least a "<<wantToFind<<endl;
}else{
cout<<"no, there has no "<<wantToFind<<endl;
}
return 0;
}
二、查找某个数在数组中出现的位置
#include<vector>
#include<iostream>
#include<algorithm> // 头文件
using namespace std;
int main(){
vector<int> avec{1,43,4,1,4,5,8,6};
for (int num:avec){
cout<<num<<" ";
}
cout<<endl;
int wantToFind = 4;
if (find(avec.begin(),avec.end(),wantToFind)!=avec.end()){
// 找的结果迭代器没有超过数组长度,说明找到了
cout<<"yes, there is at least a "<<wantToFind<<endl;
// 找到之后把index输出
int index = distance(avec.begin(),find(avec.begin(),avec.end(),wantToFind));
cout<<"and first index = "<<index<<endl;
}else{
cout<<"no, there has no "<<wantToFind<<endl;
}
return 0;
}