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. sublime text怎么格式化PHP代码

    手动安装: 可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control: 1.点击Preferences > Browse Packages菜单 2.进入打开的 ...

  2. effective c++ (三)

    条款07:为多态基类申明virtual析构函数 1.c++明白指出,当derived class对象经由一个base class指针被删除,而该base class带有一个non-virtual 析构 ...

  3. Angular 文档中链接的修改路径

    在 Angular 文档程序中的左侧链接的修改路径在哪里? 如下图所示的修改路径. 左侧链接的修改路径在 angular-cn\aio\content\navigation.json 这个文件中. 你 ...

  4. flink⼿手动维护kafka偏移量量

    flink对接kafka,官方模式方式是自动维护偏移量 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 从获取了了数据,但是在执⾏行行 ...

  5. JavaWeb_Servlet生命周期

    菜鸟教程 传送门 Servlet生命周期 package com.Gary.servlet; import java.io.IOException; import javax.servlet.Serv ...

  6. JavaWeb_Get和Post方法传输数据区别

    Get方法和Post方法传输数据区别: 传送门 GET在浏览器回退时是无害的,而POST会再次提交请求 GET产生的URL地址可以被Bookmark,而POST不可以 GET请求会被浏览器主动cach ...

  7. 前后端分离,get请求导出

    [HttpGet] public HttpResponseMessage Export(string obj) { string eventType = string.Empty; string ex ...

  8. LeetCode 第 3 题:无重复字符的最长子串(滑动窗口)

    LeetCode 第 3 题:无重复字符的最长子串 (滑动窗口) 方法:滑动窗口 滑动窗口模板问题:右指针先走,满足了一定条件以后,左指针向前走,直到不满足条件. 特点:左右指针的方向是一致的,并且是 ...

  9. linux挂载本地镜像

    //创建挂载目录 mkdir /media/cdrom //挂载镜像 mount -t iso9660 /dev/cdrom /media/cdrom 提示:mount:block device /d ...

  10. UNITY相关的一些新功能,新想法

    1,lua profiler for unity : https://github.com/ElPsyCongree/LuaProfiler-For-Unity 参考文章:https://blog.c ...