algorithm介绍

1取绝对值的情况
函数返回值都是 数的返回值

1 整形
int abs(int a) //函数返回整形参数绝对值
2 复数
double cabs(struct complex znum) //返回复数znum的绝对值
3浮点双精度
double fabs(double x) //返回双精度参数x的绝对值
4长整型:
long labs(long n) //返回长整型参数n的绝对值
!!!注意使用绝对值函数的库都是
#include < cmatch>
有些编译器库函数是#include< cstdliib>和
#include< cmath>

2 max min函数
max(a,b)函数返回值是a b中大的数
min(a,b) 函数返回值是a b中小的数

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int a=2,b=3;int c=1,d=7;cout<<max(a,b)<<" "<<min(c,d)<<endl;return 0;
}

3 swap交换函数
swap(a,b)函数返回值是交换a b的值

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int a=2,b=3;swap(a,b);cout<<a<<" "<<b<<endl;return 0;
}

4 sort排序函数
格式 sort(a+m,a+n);
函数返回值是从小到大的数列

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int a[4]={2,34,23,3};sort(a,a+4);for(int i=0;i<=3;i++){cout<<a[i]<<" "<<endl;}return 0;
}

5.reverse()函数
reverse(it, it+a)可以将数组指针在[it, it+a)之间的元素或容器的迭代器在[it, it2)范围内的元素进行反转
a=需要反转数的个数
整型数反转:

#include<bits/stdc++.h>
using namespace std;
int main()
{int a[10]={0,1,2,3,4,5,6,7,8,9};reverse(a,a+10);for(int i=0;i<10;i++)printf("%d ",a[i]);return 0;
}

字符串反转:

#include<bits/stdc++.h>
using namespace std;
int main()
{char a[10]={"abcdefghi"};reverse(a,a+9);puts(a);return 0;
}

6.next_permutation函数(全排列)
使用条件:排好序
next_permutation(t1,t1+a)可以对数组指针[t1,t1+a]之间的元素进行全排列,也就是"a=全排列的长度"
字符串全排列:

#include <iostream>
#include <algorithm>
using namespace std;
int n;  // n表示序列中数的个数
int a[10005];
int main()
{cin >> n;for (int i = 0; i < n; i++)cin >> a[i];cout<<endl; do{for (int i = 0; i < n; i++)  // 打印cout << a[i] << " ";cout << endl;}while (next_permutation(a, a + n)); // 当前序列不存在下一个排列时,函数返回false,否则返回true。return 0;
}

7 .fill()函数
fill(it,it+a)可以把数组或容器中的某一段区间赋为某个相同的值。和memset不同,这里的赋值可以是数组类型对应范围中的任意值。
a=赋值的个数

#include<bits/stdc++.h>
using namespace std;
int main()
{int a[5]={1,5,6,7,3};fill(a+0,a+5,999);//将a[0]~a[4]赋值3为999 for(int i=0;i<5;i++)printf("%d ",a[i]);return 0;
}

8 .lower_bound(begin,end,num)函数
使用条件:排好序
从数组的begin位置到end-1位置二分查找第一个大于等于num的数组,找到返回该数组地址,不存在则返回end。通过返回的地址减去起始地址begin,得到数字在数组中的下标。

#include<bits/stdc++.h>
using namespace std;
int main()
{int x;int a[5]={1,2,3,4,5};x=lower_bound(a,a+5,3)-a;printf("%d ",x);return 0;
}

! ! ! ! ! ! !注意:如果使用次函数查找某一个数,没有找到只会返回第一个比这个数大的数的下标,要是判断有没有找到,可以用返回下标的数和需要查找的数进行对比即可

9 .upper_bound(begin,end,num)函数
使用条件:排好序
从数组的begin位置到end-1位置二分查找第一个大于num的数组,找到返回该数组地址,不存在则返回end。通过返回的地址减去起始地址begin,得到数字在数组中的下标。
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{int x;int a[5]={1,2,3,4,5};x=upper_bound(a,a+5,4)-a;printf("%d ",x);return 0;
}

algorithm介绍相关推荐

  1. 布雷森汉姆直线演算法(Bresenham‘s line algorithm)介绍

    布雷森汉姆直线演算法(Bresenham's line algorithm)是用来描述两点间决定一条直线的算法,本人发现它可以用于确定栅格地图中两点间直线经过的栅格位置,它会算出一条线段在点阵图上最接 ...

  2. Directed Minimum Spanning Tree: Chu-Liu/Edmonds Algorithm

    我们的现代数据库大作业要求实现一个图查询系统,包括基于属性的子图查询.可达性查询(可选).最短路径查询(可选).TopK最短路径查询(可选).图形化展示(可选)等功能.分成子图同构查询小组以及可达性及 ...

  3. 英文学术论文写作——模式识别方向(笔记)

    文章目录 文章结构 英文写作tips Latex小技巧 英文学术论文写作经验几乎为0,在老师和师兄们的帮助下,学习到了如何撰写文章.仅限于模式识别方向的. 文章结构 文章除去abstract,ackn ...

  4. 什么是高可用性_什么是高可用性| 第2部分

    什么是高可用性 高可用性系统的设计 (Design of a high availability system) Ironically, adding more components to the t ...

  5. 什么事消息队列的高可用性_什么是高可用性

    什么事消息队列的高可用性 什么是高可用性? (What Is High Availability?) High availability is a term often used in computi ...

  6. 我作为bertelsmann技术和深度学习纳米学位毕业生的经验

    One of the responsible things to do when a year is ending is to reflect on it. What accomplishments ...

  7. 深入解析最短路径算法

    转载自:http://blog.csdn.net/fengchaokobe/article/details/7478774    第一节 问题的提出及解决方法        所谓最短路径问题,可以说有 ...

  8. 最短路标号法python_最短路问题与标号算法(label correcting algorithm)研究(1) - 开篇介绍...

    作者:崔赞扬.李崇楠 指导老师:周学松教授 校对:邓发珩.周航.向柯玮 序言 本系列推文重在从算法基本原理.复杂度分析.优缺点.代码实现.算法扩展等方面科普Label Correcting Algor ...

  9. Wu反走样算法介绍(简单易懂) -Xiaolin Wu’s Algorithm

    目录 一.算法介绍 二.算法描述 三.算法总结 一.算法介绍 Wu反走样算法,可以将线条变得更平滑,即产生抗锯齿效果.示意图如下: 原图 经过Wu反走样算法改善后 原图 经过Wu反走样算法改善后 二. ...

最新文章

  1. 用Python做自然语言处理必知的八个工具【转载】
  2. ThinkPHP 3.2 支付宝即时到账接口开发
  3. java我的世界极限生存_我的世界 1.7.10 极限生存整合包
  4. 你需要的前端进阶书籍清单,分享下载
  5. Enterprise Libary 2 Hands-on-Lab 发布了
  6. fatal: git-write-tree: error building trees
  7. 常用排序算法的python实现
  8. request.getParameterValues()用法
  9. Python 报错 UnboundLocalError: local variable ‘xxx‘ referenced before assignment
  10. php上传禁止php_文件上传限制绕过技巧
  11. Mina中的Snark Worker
  12. 使用代理后,雷鸟连接qq邮箱
  13. 文件备份 服务器,服务器文件备份
  14. android 老人机模式,如何将智能手机切换成老人机模式
  15. 斗破苍穹模拟器显示服务器人满,斗破苍穹手游服务器达到上限不能创建角色原因及解决方法...
  16. 国际化RFID射频常用协议标准
  17. 三类完整性规则mysql下规则实现短语_关系数据库有三类完整性规则,分别是参照完整性规则、用户自定义的完整性和()规则。...
  18. 泛微OA 开发环境搭建 IDEA
  19. 51单片机实现矩阵键盘密码锁,数码管显示
  20. 从解构你到理解我:三星们是如何在本土化营销上节节退败的?

热门文章

  1. 华为设备链路聚合(LACP模式)
  2. 【Python】摄氏度与华氏度互相转化
  3. 探索云原生技术之基石-Docker容器入门篇(3)
  4. 学号20189220 2018-2019-2 《密码与安全新技术专题》第五周作业
  5. 华为云灾备解决方案,助力企业高效构建安全合规云灾备系统
  6. Maximal Information Coefficient (MIC)最大互信息系数详解与实现
  7. 什么是嵌入式 如何理解嵌入式系统开发
  8. debian是什么?
  9. python全栈开发实战pdf老男孩_Python教程:2017年老男孩最新全栈python第2期视频教程全套完整版...
  10. python使用opencv、vlc对直播连接进行视频播放