zoukankan      html  css  js  c++  java
  • 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.vector a;  定义一个动态数组a(具体如何使用我就不说了)

    12.clock()*1.0/CLOCKS_PER_SEC  返回程序运行时间(CLOCKS_PER_SEC在Windows环境下是1000)

    13.memset(a,0/-1/0x7f,sizeof(a));  初始化a数组(只能是0,-1,正无穷)


    二、黑科技宏定义

    1.#define N 1000  把程序内N全部当成1000来用例如:a[N]=a[1000]

    2.#define liangbei(a) a*2  (不好形容)例如:cout<<liangbei(10);    输出:20;

    3.#define ll long long ll即代表long long

    4.#define pr(x) cout<<#x<<"="<<(x)<<endl;  (不好形容*2)例如:int x=1;  pr(x)  输出:x=1


    三、其他黑科技

    1.O2  在编译的时候随你的代码进行优化(似乎是分等级的 O1/O2/O3)

    例如:int a=0  for(int i=1;i<=n;i++)  a++;  直接变成a=n;

    如何在自己电脑上开O2呢?

    点击编译器选项中写入-O2

    2.-W -Wall -Wextra -Wconversion   

    在编译器选项中加入这句话,会在你程序编译时,给你提示一些你犯的一些低级错误(例如变量没初始化)

    3.-std=c++11

    在编译器选项中加入这句话,让你在比赛时的c++更加强大!(搞清楚比赛是不是支持c++)


    附录:

    1.Dev-c++软件中的编译器选项打开方式:

    工具-->编译选项-->第一个白框。


    持续更新!

  • 相关阅读:
    Watchguard公司内部招聘:C Developer in Linux Requirements
    条件注释判断浏览器<![if !IE]><![if IE]><![if lt IE 6]><![if gte IE 6]>
    js之事件冒泡和事件捕获详细介绍
    javascript:;与javascript:void(0)使用介绍
    IE和FireFox中JS兼容之event .
    Adobe下周将推新补丁和新的更新模式 狼人:
    微软下周二发布11个补丁 修复25个安全漏洞 狼人:
    安全专家担心Adobe没有足够实力来阻止黑客攻击 狼人:
    保证安全 认清五种易被忽视的攻击方式 狼人:
    六成黑客攻击与PDF漏洞有关 远超微软 狼人:
  • 原文地址:https://www.cnblogs.com/laoguantongxiegogofs/p/12382438.html
Copyright © 2011-2022 走看看