algorithm下的常用函数
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下的常用函数的更多相关文章
- STL algorithm 头文件下的常用函数
algorithm 头文件下的常用函数 1. max(), min()和abs() //max(x,y)和min(x,y)分别返回x和y中的最大值和最小值,且参数必须时两个(可以是浮点数) //返回3 ...
- algorithm头文件下的常用函数
algorithm头文件常用高效函数 max() max(a, b)返回a和b中的最大值,参数必须是两个(可以是浮点型). 1 #include <iostream> 2 #include ...
- STL下<algorithm>下的sort函数
定义: sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序.sort函数进行排序的时间复杂度为nlog2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#i ...
- STL下<algorithm>下的reverse函数
定义: reverse用于C++中,对给定区间所有元素进行排序,是一种反向函数,不具备排序功能.sort函数包含在头文件为#include<algorithm>的C++标准库中. 语法: ...
- pandas 学习(二)—— pandas 下的常用函数
import pandas as pd; 1. 数据处理函数 pd.isnull()/pd.notnull():用于检测缺失数据: 2. 辅助函数 pd.to_datetime() 3. Series ...
- algorithm 中的常用函数
非修改性序列操作(12个) 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 fin ...
- 头文件algorithm中的常用函数
非修改性序列操作(12个) 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 fin ...
- 【C++常用函数】头文件<algorithm>中的常用函数(绝对值,交换,比较)
swap(a,b) 用于交换a,b两个变量的值: max(a,b) 返回a,b中的最大值: min(a,b) 返回a,b中的最小值: abs(x) 返回x的绝对值,x必须是整数:
- Linux下常用函数-字符串函数
inux下常用函数-字符串函数 atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib ...
随机推荐
- Java类路径的问题
下面是eclipse中的文件组织形式. 下面是硬盘中文件的组织形式: src:中就是自己编写的没有编译的代码. target中是编译的Java中的class文件和一些不用编译的文件.这样也就明白了为什 ...
- 51 Nod 1161 Partial sums
1161 Partial Sums 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 取消关注 给出一个数组A,经过一次 ...
- 51 Nod 1627瞬间移动(插板法!)
1627 瞬间移动 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右 ...
- xwiki使用中的问题
xwiki 内存限制 问题重现: xwiki启动后内存.cpu一直上涨,不回落,启动后服务访问速度越来越慢,最后无法访问 分析: xwiki在启动时会消耗大量内存和cpu,增加tomcat最大内存限制 ...
- Jmeter连接Redis服务缓存
1.添加线程组->Sampler->BeanShell Sampler,加入以下内容: import redis.clients.jedis.Jedis; import org.apach ...
- JS框架_(Esign.js)仿信用卡电子签名特效
百度云盘 传送门 密码:l60w 电子签名特效效果: <!DOCTYPE html> <html> <head lang="en"> <m ...
- vue计算属性详解
一.什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...
- 分布式-信息方式-ActiveMQ支持的传输协议和配置
ActiveMQ支持的传输协议和配置■ Connector: ActiveMQ提供的,用来实现连接通讯的功能.包括: client-to-broker ...
- 使用 vuetron 调试 mpvue 项目
简介 由于小程序开发工具的封闭,我们无法通过安装 chrome 插件来方便地使用 vue-devtools 调试我们的 mpvue 项目.vuetron 是一个 vue.js 的项目调试工具, 同时支 ...
- LVS负载均衡DR工作流程
LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PRE ...