lower_bound中的数组如果是struct数组,该怎么写?
#include<bits/stdc++.h>
using namespace std;
const int p=99999997;
int n,c[100005],d[100005];
long long cnt,ans;
struct __
{
long long i,n;
}a[100005],b[100005],l[100005],r[100005];
bool cmp(const __ &x,const __ &y)
{
if(x.n==y.n)return x.i<y.i;
return x.n<y.n;
}
int main()
{
scanf("%d",&n);
for(register int i=1;i<=n;++i)
{
scanf("%lld",&a[i].n);
a[i].i=i;
l[i]=a[i];
}
for(register int i=1;i<=n;++i)
{
scanf("%lld",&b[i].n);
b[i].i=i;
r[i]=b[i];
}
stable_sort(l+1,l+n+1,cmp);
cnt=unique(l+1,l+n+1,cmp)-(l+1);
for(register int i=1;i<=n;++i)
{
a[i].n=lower_bound(l+1,l+cnt+1,a[i].n)-l;
}
stable_sort(r+1,r+n+1,cmp);
cnt=unique(r+1,r+n+1,cmp)-(r+1);
for(register int i=1;i<=n;++i)
{
b[i].n=lower_bound(r+1,r+cnt+1,b[i].n)-r;
}
return 0;
}
以上是我的程序的部分代码,一直在lower_bound那里报错