五、#include < algorithm >

下面介绍的几个函数都作用在序列上,接收两个迭代器(或指针)l,r,对下标处于**前闭后开区间【l,r)**中的元素执行一系列操作。

  • sort() 快速排序

    int n = 3;
    int a[3] = {3,2,1};
    //对[0, n)区间进行排序
    sort(a, a + n);
    

    可以在第三个参数传入定义大小比较的函数,或者重载“小于号“运算符。

    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    struct node {int d;node(int dd) {d = dd;}node(){}
    } a[100];bool cmp(node a, node b) {//<符号是按照d小的排在前面//retunr a.d > b.d是按照d大的排在前面 return     a.d < b.d;
    }
    int main() {a[0] = node(3);a[1] = node(2);a[2] = node(1);//【0, 3) sort(a, a + 3, cmp);for (int i = 0; i < 3; i++) {printf("%d ", a[i].d);}printf("\n");return 0;
    }
    
  • reverse():翻转
    翻转一个vector: reverse(a.begin(), a.end());
    翻转一个数组: reverse(a, a + n) 下标是【0, n- 1】

  • lower_bound 二分查找
    lower_bound的第三个参数传入一个元素,在2个迭代器(或指针)指定的部分上执行二分查找,返回第一个大于等于x的元素的位置的迭代器。

    int a[5] = {0,1,2,3,4};
    //返回第一个大于等于2的元素的下标
    int i = lower_bound(a, a + 5, 2) - a;
    
  • upper_bound

  • 用法与lower_bound大致相同,唯一的区别是查找第一个大于x的元素。当然2个指定的部分必须提前排好序

algorithm用法相关推荐

  1. algorithm用法详解

    标准库模板: Algorithms 头文件<algorithm>定义了一系列特别设计用于元素范围的函数. 范围是可以通过迭代器或指针访问的任何对象序列,例如数组或某些STL 容器的实例.但 ...

  2. c++stl应用入门

    在这篇中,我会讲几个简单易懂且比较常用的stl函数,这些函数在noip系列考试中往往被允许使用(既然让用我们自然不用手码了...) (末尾有惊喜!) 1.sort 绝大部分刚入门的oier第一个接触的 ...

  3. P1008 [NOIP1998 普及组] 三连击 题解

    P1008 [NOIP1998 普及组] 三连击 题解 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目描述 将 1, 2, - , 9 ...

  4. DevExpress Winform 常用控件

    前言 DevExpress 控件的功能比较强大,是全球知名控件开发公司,对于开发 B/S 或 C/S 都非常出色,可以实现很炫且功能强大的效果. DevExpress Winform 常用控件是本人在 ...

  5. boost::histogram::algorithm::project用法的测试程序

    boost::histogram::algorithm::project用法的测试程序 实现功能 C++实现代码 实现功能 boost::histogram::algorithm::project用法 ...

  6. boost::histogram::algorithm::reduce用法的测试程序

    boost::histogram::algorithm::reduce用法的测试程序 实现功能 C++实现代码 实现功能 boost::histogram::algorithm::reduce用法的测 ...

  7. algorithm java_Java KeyPairGenerator getAlgorithm()用法及代码示例

    java.security.KeyPairGenerator类的getAlgorithm()方法用于返回此 key 对生成器的算法的标准名称.有关标准算法名称的信息,请参见Java密码体系结构标准算法 ...

  8. c语言algorithm头文件,C++ algorithm头文件函数的基本用法

    algorithm /*algorithm头文件下的常用函数*/ /* 使用algorithm头文件,需要在头文件下加一行using namespace std;" */ //常用函数max ...

  9. algorithm头文件用法

    algorithm下 //常用函数max(), //min() // abs()绝对值函数 //swap()交换函数 //reverse()反转函数,在给定一定范围内进行反转 //fill()在某一范 ...

最新文章

  1. xshell突然连接不上虚拟机解决办法
  2. maven找到mysql 连接池_在Tomcat6.0+MySQL5.0环境下配置和使用数据库连接池
  3. [C++STL]C++实现string容器
  4. 档案信息化管理的最好解决方案
  5. zset中的score_Redis 在项目中合理使用经验总结
  6. Centos 监控进程,并自动重启
  7. 使用Linux的alternatives命令替换选择软件的版本
  8. 解决VS在高DPI下设计出的Winform程序界面变形问题
  9. TensorFlow:交叉熵损失函数
  10. 16. Magento模板及布局文件中引用Static Block的方法
  11. linux tc 对本机网卡限速
  12. Mac版Python3安装/升级
  13. ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的旋转角度标刻功能介绍及其操作设置...
  14. linux系统软件包下载
  15. Google登陆集成笔记-含坑
  16. 手把手搭建VuePress文档
  17. 自己动手做个智能小车(2)
  18. 香港科大【526清水湾思享会@杭州】暨香港科大EMBA第四届校友会【浙江分会】启动仪式成功举行...
  19. 动态RAM和静态RAM的区别(浅学)
  20. w ndows无法连接到System,Windows无法连接到System Event Notification Service 服务

热门文章

  1. 网工知识角|例行维护检查华为设备,这10个常用命令你必须掌握
  2. React组件Component
  3. Docker安装教程(超详细)
  4. Python订票系统这才是看电影选座的正确方法,原来我们都上当了
  5. 业界最全,阿里云混合云灾备服务上线!
  6. 宝塔面板网站一打开cpu百分百_解决宝塔面板CPU占满100%,负载100%网站缓慢等问题...
  7. 2020-10-7 CCNA学习笔记
  8. 嵌入式LINUX系统程序开发
  9. debian安装tools
  10. php+时间戳+星座,php 根据日期显示星座的简单示例