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;
}
posted @ 2026-03-20 22:33  peter_shen  阅读(3)  评论(0)    收藏  举报