当前位置: 首页 > news >正文

【c++进阶:c++ algorithm的常用函数】

 

 

c++ algorithm的常用函数

https://blog.csdn.net/hy971216/article/details/80056933

 

reverse()

reverse(it,it2) 可以将数组指针在[it,it2)之间的元素或容器的迭代器在[it,it2)范围内的元素进行反转。

 

返回全排列:next_permutation(a,a+3)返回两个位置之间的全排列并原地赋值;

 1 #include <cstdio>
 2 #include <algorithm>
 3 using namespace std;
 4 int main(){
 5     int a[3]={1,2,3};
 6     printf("%d %d %d\n",a[0],a[1],a[2]);
 7     while(next_permutation(a,a+3)){
 8         printf("%d %d %d\n",a[0],a[1],a[2]);
 9     }
10     return 0;
11 }

 返回两个位置之间的某个数第一次出现的下标和最后一次的下标:

 1 #include<stdio.h>
 2 #include<string>
 3 #include<vector>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     int a[10]={1,2,2,3,3,3,5,5,5,5};
 9     printf("%d,%d\n",int(lower_bound(a,a+10,3)-a),int(upper_bound(a,a+10,3)-a));
10     return 0;
11 }

 sort()函数的排序:可以对数组元素和结构体数组排序; 对容器排序只能对vector, string,  deque进行sort()

deque是一种双头容器,参见:https://www.cnblogs.com/LearningTheLoad/p/7450948.html

 1 #include<stdio.h>
 2 #include<string>
 3 #include<vector>
 4 #include<algorithm>
 5 using namespace std;
 6 bool cmp(int a,int b){
 7     return a>b;
 8 }
 9 int main()
10 {
11     vector<int> vi;
12     vi.push_back(3);
13     vi.push_back(1);
14     vi.push_back(2);
15     sort(vi.begin(),vi.end(),cmp);
16     for(int i=0;i<3;i++){
17         printf("%d ",vi[i]);
18     }
19     return 0;
20 }

 

转载于:https://www.cnblogs.com/joelwang/p/10518413.html

相关文章:

  • (转) RFS+AutoItLibrary测试web对话框
  • 刚刚接触python的感想
  • linux下使用hiredis异步API实现sub/pub消息订阅和发布的功能
  • 第70届(2019)IMO中国国家队选拔考试试题
  • xml编码格式在tomcat下运行出错,eclipse里面直接运行没有问题
  • 微服务架构 SpringCloud(二)Eureka(服务注册和服务发现基础篇)
  • Android图片缓存之Glide进阶
  • css(二):高度与文档流,line-box与box,宽度,position与
  • SQL Server2005作业执行失败的解决办法
  • 进度条14
  • 阿里云RDS PostgreSQL GPU加速规格(支持GIS时空加速)发布
  • 怎么隐藏MathType标尺
  • 用Python监听邻居家小姐姐的上网行为
  • Git同步原始仓库到Fork仓库中
  • 如何将PDF图片旋转90度,盘点这个小方法
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • @angular/forms 源码解析之双向绑定
  • “大数据应用场景”之隔壁老王(连载四)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CEF与代理
  • css属性的继承、初识值、计算值、当前值、应用值
  • iOS 颜色设置看我就够了
  • javascript从右向左截取指定位数字符的3种方法
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • SSH 免密登录
  • TypeScript迭代器
  • vue脚手架vue-cli
  • yii2中session跨域名的问题
  • 观察者模式实现非直接耦合
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 记一次用 NodeJs 实现模拟登录的思路
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 离散点最小(凸)包围边界查找
  • 前嗅ForeSpider教程:创建模板
  • 通过几道题目学习二叉搜索树
  • 问题之ssh中Host key verification failed的解决
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #FPGA(基础知识)
  • #pragam once 和 #ifndef 预编译头
  • (10)ATF MMU转换表
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (九十四)函数和二维数组
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)ABI是什么
  • (转)JAVA中的堆栈
  • (转)Linux下编译安装log4cxx
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net6使用WebSocket与前端进行通信
  • .net专家(高海东的专栏)
  • @KafkaListener注解详解(一)| 常用参数详解