两个很实用很方便的函数核心及用法{(lower_bound)+(max_element))~~
来源:互联网 发布:补水保湿 知乎 编辑:程序博客网 时间:2024/05/02 04:40
(1) 关于 lower_bound(a,a+n,x)-a的用法:
求x在数组a中的位置 (有序数组)
函数介绍
lower_bound()返回一个iterator(迭代器)它指向在 [first,last)标记的 有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个大于等于value。 其实还有upp_bound();upper_bound返回的是最后一个大于等于val的位置;
注意事项
调用lower_bound之前必须确定序列为有序序列,否则调用出错。第一个版本排序根据底层的 <(小于)操作符,第二个版本根据comp进行排序。
函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置,是查找序列中的第一个出现的值大于等于val的位置;
来看这个代码:
#include<bits/stdc++.h>using namespace std;int a[100];int main(){ int n,i,m,x; while(~scanf("%d",&n)) { for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); scanf("%d",&m); while(m--) { scanf("%d",&x); int p=lower_bound(a,a+n,x) - a;//格式; printf("%d\n",p); }// if(a[p]==x) printf("%d found at %d\n",x,p+1);// else printf("%d not found",x); } return 0;}
(2)
max_element的用法及min_element
a. position=max_element(a,a+n)-a;//说明它本质是一个指针;
这样写的话就代表的是找到的最大元素的位置在哪里,position代表位置,还是蛮好理解的吧? 值得注意的一点是这个返回的是最大元素的位置,即指针指向第一个最大元素我们用以下方式表示找到的最大元素的值 ;
b . printf("%d\n",*max_element(a,a+n));
同时 min_element的用法同上,但是都有一个共同点,就是找到的位置都是第一个最大(小)的元素,即存在多个相同大小的元素的时候找到的是第一个
- 两个很实用很方便的函数核心及用法{(lower_bound)+(max_element))~~
- STL--lower_bound()函数的用法
- C++中sort,upper_bound,lower_bound,*max_element,unique用法介绍
- lower_bound函数的用法(STL库函数)
- max_element和min_element的用法
- max_element和min_element的用法
- 两个实用的函数
- lower_bound()函数用法
- lower_bound()函数用法
- 程序设计中常用的一些函数概括,很实用也很方便
- 枚举的两个实用用法
- upper_bound\lower_bound的用法
- lower_bound,upper_bound的用法
- C++ STL lower_bound upper_bound的用法以及cmp函数
- lower_bound函数的使用
- 函数lower_bound()的使用
- map,max_element仿函数的写法
- STL set,map , priority_queue 及 lower_bound 的排序比较函数
- android toolbar应用
- 记录一个map-site.xml -Xmx 1000m 写成了 1000报错问题
- Java this 关键字返回当前类实例变量
- 用VB进行十五个字母的排序——>编程
- winform DataGridView 自适应列宽
- 两个很实用很方便的函数核心及用法{(lower_bound)+(max_element))~~
- HDU1028 Ignatius and the Princess III(DP)
- PLSQL个性化设置
- uboot 2015 添加新的板级支持
- DAC驱动
- iOS简单实现虚线的小方法
- GamePlayKit的ECS“实体-组件-系统”
- 图片文件Exif信息详细说明
- 安装sqlmap+python正确姿势