标签:AC 百度百科 用法 while turn pac sort排序 const 很多
大理石在哪儿?
做本题主要是为了熟悉STL中的sort函数和lower_bound函数:
#include<cstdio> #include<algorithm> using namespace std ; const int maxn=10000 ; int main() { int n , m ; int a[maxn] ; int num=0 ; while(scanf("%d%d",&n,&m)==2 && n)//注意 { printf("CASE# %d:\n",++num) ; for(int i=0 ; i<n ; i++) scanf("%d",&a[i]) ; sort(a,a+n) ;//sort排序函数 while(m--) { int x ; scanf("%d",&x) ; int q=lower_bound(a,a+n,x)-a ;//在已排数组a中寻找x if(a[q]==x) printf("%d found at %d\n",x,q+1) ; else printf("%d not found\n",x) ; } } return 0 ; }
sort函数在以前的编程学习中见过了很多次,所以运用起来比较熟练,不再多讲
lower_bound函数的作用是查找“大于或者等于x的第一个位置”,但是在用的时候有一个疑问,为什么要-a?
经过百度百科之后知道,lower_bound函数返回一个“大于或者等于x的第一个位置的指针”,从而明白了lower_bound的用法
标签:AC 百度百科 用法 while turn pac sort排序 const 很多
原文地址:https://www.cnblogs.com/xgf-gq/p/9029479.html