一、find函数
可以用于在容器里查找元素,如果存在返回值为该元素的迭代器指针,如果不存在则返回容器的最后一个元素后的迭代器指针end()。
1.例:在vector容器里查找
vector<int>::iterator find(std::vector<int>::iterator, std::vector<int>::iterator, const int &)
其中 vector<int>::iterator为返回值,std::vector<int>::iterator, std::vector<int>::iterator为查找元素的范围,初始位置到末尾置,const int &为所需查找元素值。
例:
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n;
cin>>n;
vector<int> arr;
for(int i=0;i<n;i++){
int x;
cin>>x;
arr.push_back(x);
}
vector<int>::iterator it=find(arr.begin(),arr.end(),1);
if(it!=arr.end()){
cout<<"找到了"<<endl;
}else{
cout<<"不存在";
}
}
二、distance函数
返回从
first
走到last
所需的自增数。若使用随机访问迭代器且first
可从last
抵达,则值可能为负。
例:
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n;
cin>>n;
vector<int> arr;
for(int i=0;i<n;i++){
int x;
cin>>x;
arr.push_back(x);
}
vector<int>::iterator it=find(arr.begin(),arr.end(),1);
if(it!=arr.end()){
int x=distance(arr.begin(),it);
cout<<"找到了"<<endl;
cout<<"所在位子为:"<<x<<endl;
}else{
cout<<"不存在";
}
}