c++中比较好用的“黑科技”
一、黑科技函数(常用的我就不写了,例如sort函数)
1.next_permutation(a+1,a+1+n)a[1-n]全排列
2.reverse(a+1,a+1+n)将a[1-n]的数翻转过来
3.*max_element(a+1,a+1+n)找出a[1-n]数字最大值(*是因为这个函数是一个指针)
4.*min_element(a+1,a+1+n)找出a[1-n]数字的最小值(*是因为这个函数是一个指针)
5.accumulate(a+1,a+n,0)找出a[1-n]数字的和(0是初值)(c++11才支持)
6.num=unique(a+1,a+1+n)-a-1;返回去重后数字个数,并将a数组去重
7.rotate(a+1,a+1+x,a+1+n)把a数组前x数放在第n个数后面
8.lower_bound(a+1,a+1+n,x)-a在a数组中下标[1-n]中找查找x的位置,返回第一个大于等于x的数字的指针-a即为下标
9.upper_bound(a+1,a+1+n,x)-a在a数组中下标[1-n]中找查找x的位置,返回第一个大于x的数字的指针-a即为下标
10.random_shuffle(a+1,a+1+n)随机打乱a数组中下标[1-n]中的数(对拍神器)
11.vectora;定义一个动态数组a(具体如何使用我就不说了)
12.clock()*1.0/CLOCKS_PER_SEC返回程序运行时间(CLOCKS_PER_SEC在Windows环境下是1000)
13.memdet(a,0/-1/0x7f,sizeof(a));初始化a数组(只能是0,-1,正无穷)
二、黑科技宏定义
1.#defineN1000把程序内N全部当成1000来用例如:a[N]=a[1000]
2.#defineliangbei(a)a*2(不好形容)例如:cout< 3.#definelllonglongll即代表longlong 4.#definepr(x)cout<<#x<<"="<<(x)< 三、其他黑科技 1.O2在编译的时候随你的代码进行优化(似乎是分等级的O1/O2/O3) 例如:inta=0for(inti=1;i<=n;i++)a++;直接变成a=n; 如何在自己电脑上开O2呢? 点击编译器选项中写入-O2 2.-W-Wall-Wextra-Wconversion 在编译器选项中加入这句话,会在你程序编译时,给你提示一些你犯的一些低级错误(例如变量没初始化) 3.-std=c++11 在编译器选项中加入这句话,让你在比赛时的c++更加强大!(搞清楚比赛是不是支持c++) 附录: 1.Dev-c++软件中的编译器选项打开方式: 工具-->编译选项-->第一个白框。 好了,本文就给大家介绍到这里,精彩内容继续! 声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。