我的第一行注释撤销掉能够正常的输出,但是我用第二个注释的 for 输出 为什么都是空的呢?
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+6;
int n,m;
int a[maxn],b[maxn];
int main()
{
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++) scanf("%d",&a[i]);
int q=0;
while(m--){
int x;
int l=0;
int r=n-1;
scanf("%d",&x);
while(l<r){
int mid=(l+r)>>1;
if(a[mid]<x) l=mid+1;
else r=mid;
}
if(a[l]!=x) b[q++]=-1;
else b[q++]=l+1;
}
return 0;
}