1597: 数组查找
lower_bound的使用,需要三个参数
并且是在有等于的时候返回等于的迭代器
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m;
scanf("%d%d",&n,&m);
vector<int> vec;
// priority_queue<int> que;
for(int i=1;i<=n;i++){
int num;
scanf("%d",&num);
vec.push_back(num);
// que.push(num);
}
for(int i=1;i<=m;i++){
int num;
scanf("%d",&num);
auto it = lower_bound(vec.begin(),vec.end(),num);
if(it==vec.end()){
printf("-1\n");
}
else{
if(*it!=num)
printf("-1\n");
else
printf("%d\n",it-vec.begin());
}
}
return 0;
}

浙公网安备 33010602011771号