vector的某个区间查找
时间: 2023-11-26 16:44:35 浏览: 69
vector的某个区间查找可以使用STL中的find函数和distance函数。find函数可以在指定的区间内查找某个元素,如果找到了就返回该元素的迭代器,否则返回区间的结束迭代器。distance函数可以计算两个迭代器之间的距离,也就是该元素在vector中的索引位置。下面是一个示例代码:
```
#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;
int wantToFind = 2;
auto start = avec.begin() + 2; // 指定查找区间的起始位置
auto end = avec.end() - 2; // 指定查找区间的结束位置
if (find(start, end, wantToFind) != end){
// 找的结果迭代器没有超过区间长度,说明找到了
cout<<"yes, there is at least a "<<wantToFind<<endl;
// 找到之后把index输出
int index = distance(avec.begin(), find(start, end, wantToFind));
cout<<"and first index = "<<index<<endl;
}else{
cout<<"no, there has no "<<wantToFind<<endl;
}
return 0;
}
```