algorithm下的常用函数

max(),min(),abs()

  • max(x,y)返回x和y中最小的数字
  • min(x,y)返回x和y中最大的数字
  • abs(x)返回x的绝对值,注意x应当是整数,如果是浮点数应当使用math头文件下的fabs函数

swap()

swap(x,y)交换x和y的值

reverse()

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

对于数组中的元素

# include <iostream>
# include <algorithm>
using namespace std;
int main(void)
{
int a[5]={1,3,2,3,4};
reverse(a,a+4);//将a[0]~a[3]逆转
for(int i=0;i<5;i++)
{
cout<<*(a+i)<<endl;
}
return 0;
}

对于容器中元素

# include <iostream>
# include <algorithm>
using namespace std;
int main(void)
{
string s="abcdefghig";
reverse(s.begin(),s.end());
cout<<s<<endl;
return 0;
}

next_permutation()

next_permutation()给出一个序列在全排列的下一个序列

# include <iostream>
# include <algorithm>
using namespace std;
int main(void)
{
int a[10]={1,2,3};
do
{
cout<<a[0]<<' '<<a[1]<<' '<<a[2]<<endl;
}
while(next_permutation(a,a+3));
return 0; }

fill()

可以将数组或者容器中某个区间赋值为某个相同的值,和memset不同的是,这里的赋值可以是数组类型范围内任意的值

int a[5]={1,2,3,4,5};
fill(a,a+5,233);//将a[0]~a[4]全部赋值为233

sort()

sort的基本使用

sort(首地址(必填),尾地址的后一个地址(必填),比较函数(非必填))

int a[6]={1,2,3,4,5,6};
sort(a,a+4);//对a[0]~a[3]进行排序

实现比较函数

基本排序

如果不填比较函数,会自动从小到大进行排序

规定比较函数排序

bool cmp(int a,int b)
{
return a>b;//可以理解为a>b的时候a放在b的前面
}
int a[6]={1,2,3,4,5,6};
sort(a,a+4,cmp);

结构体排序

struct node{
int x,y;
}ssd[10]; bool cmp1(node a,node b){
return a.x>b.x;
} bool cmp2(node a,node b){
if(a.x!=b.x)
return a.x>b.y;//a.x和b.x和不相等的时候按照x从小到大排序
else
return a.y<b.y;//否则按照y从大到小排序
} ssd[0].x=1;
ssd[0].y=2;
ssd[1].x=4;
ssd[1].y=2;
ssd[2].x=8;
ssd[2].y=4; sort(ssd,ssd+3,cmp1);

容器排序

按照字典序排序
 string str[3]={"aa","bb","cc"};
sort(str,str+3);//按照字典序进行排序
按照字符串长度进行排序
bool cmp(string a,string b){
return a.length()>b.length();
} sort(str,str+3,cmp);

lower_bound()和upper_bound()

lower_bound()需要一个有序容器或者数组,其寻找[first,end)范围内第一个大于等于val的元素的位置,如果是数组就返回指针,如果是容器就返回迭代器

upper_bound()需要一个有序容器或者数组,其寻找[first,end)范围内第一个大于val的元素的位置,如果是数组就返回指针,如果是容器就返回迭代器

algorithm下的常用函数的更多相关文章

  1. STL algorithm 头文件下的常用函数

    algorithm 头文件下的常用函数 1. max(), min()和abs() //max(x,y)和min(x,y)分别返回x和y中的最大值和最小值,且参数必须时两个(可以是浮点数) //返回3 ...

  2. algorithm头文件下的常用函数

    algorithm头文件常用高效函数 max() max(a, b)返回a和b中的最大值,参数必须是两个(可以是浮点型). 1 #include <iostream> 2 #include ...

  3. STL下<algorithm>下的sort函数

    定义: sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序.sort函数进行排序的时间复杂度为nlog2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#i ...

  4. STL下<algorithm>下的reverse函数

    定义: reverse用于C++中,对给定区间所有元素进行排序,是一种反向函数,不具备排序功能.sort函数包含在头文件为#include<algorithm>的C++标准库中. 语法: ...

  5. pandas 学习(二)—— pandas 下的常用函数

    import pandas as pd; 1. 数据处理函数 pd.isnull()/pd.notnull():用于检测缺失数据: 2. 辅助函数 pd.to_datetime() 3. Series ...

  6. algorithm 中的常用函数

    非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         fin ...

  7. 头文件algorithm中的常用函数

    非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         fin ...

  8. 【C++常用函数】头文件<algorithm>中的常用函数(绝对值,交换,比较)

    swap(a,b) 用于交换a,b两个变量的值: max(a,b) 返回a,b中的最大值: min(a,b) 返回a,b中的最小值: abs(x) 返回x的绝对值,x必须是整数:

  9. Linux下常用函数-字符串函数

    inux下常用函数-字符串函数 atof(将字符串转换成浮点型数)  相关函数   atoi,atol,strtod,strtol,strtoul 表头文件   #include <stdlib ...

随机推荐

  1. PHP基础回顾

    变量:声明变量以$开始,变量名可以用中文但是不要用:不能使用特殊字符,比如@,下划线除外:变量名区分大小写.可变变量 $a = b; $b = c; => $$a = c;  理论上$可以无限使 ...

  2. IE浏览器如何实现断点续传

    需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...

  3. BZOJ 3784: 树上的路径 点分治+二分+set

    很容易想出二分这个思路,但是要想办法去掉一个 $log$. 没错,空间换时间. 双指针的部分错了好几次~ Code: #include <set> #include <queue&g ...

  4. pgadmin4 csrf错误导致docker-compose postgres服务下线

    docker-compse up 启动的前台服务, 过一会就自动停止 检查半天,发现是pgadmin4没安装正确不断报400 和 csrf error 然后pgadmin4为啥报这个, 因为pytho ...

  5. JavaWeb_使用dom4j解析、生成XML文件

    dom4j 官网 xml解析DOM文档对象模型(树形结构) DOM方式解析:把xml文档加载到内存形成树形结构,可以进行增删改的操作 Learn   使用dom4j解析文件"NewFile. ...

  6. JS框架_(JQuery.js)带阴影贴纸标签按钮

    百度云盘 传送门 密码:azo6 纯CSS带阴影贴纸标签按钮效果: <!doctype html> <html> <head> <meta charset=& ...

  7. 分布式-信息方式-JMS Queue示例

    代码 package test.mq.helloword; import javax.jms.Connection; import javax.jms.ConnectionFactory; impor ...

  8. LinkedList类源码浅析(一)

    1.先来看一看LinkedList类的字段和构造方法 size记录链表的长度,first永远指向链表的第一个元素,last永远指向链表的最后一个元素 提供两个构造方法,一个无参的构造方法,一个接受一个 ...

  9. Tomcat权威指南(第二版)下载pdf 高清完整中文版-百度云下载

    本书是一本万能工具,其主题涵盖了Apache Tomcat这一广受欢迎的开源servlet.JSP容器和高性能的web server. <Tomcat权威指南>对管理员和web站点管理员而 ...

  10. 5、kubernetes资源清单之Pod应用190709

    一.Pod镜像及端口 获取帮助文档 # kubectl explain pod.spec.containers spec.containers <[]object> pod.spec.co ...