查找时前先要对数据预处理排序(升序)
数组形式
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
struct node{
int x;
int y;
node(int x=0,int y=0):x(x),y(y){}
};
bool cmp(node a,node b){//不能加&
if (a.x==b.x)
return a.y<b.y;
else
return a.x<b.x;
}
struct cmp1{
bool operator () (const node& a,const node& b)const {
return a.x<b.x;
}
};
vector<node> a;
int main(){
node s=node(3,3);
node a[]={
{1,1},{3,2},{3,3},{4,1},{4,2}};
//vector<node>::iterator it=
cout<<lower_bound(a,a+5,s,cmp)-a<<" "<<upper_bound(a,a+5,s,cmp)-a;
// 或cout<<lower_bound(a,a+4,s,cmp1())-a;
system("pause");
return 0;
}
vector容器
#include<cstdio>
#include<iostream>
#include<algo