c++中比较好用的“黑科技”

 更新时间:2020年02月07日 15:20:45   作者:老官童鞋gogo  
这篇文章主要介绍了c++中比较好用的“黑科技”,一些常用小编没有给大家罗列出,主要给大家介绍了sort函数,需要的朋友可以参考下

一、黑科技函数(常用的我就不写了,例如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.memdet(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++软件中的编译器选项打开方式:

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

好了,本文就给大家介绍到这里,精彩内容继续!

相关文章

  • 用C语言实现单链表的各种操作(一)

    用C语言实现单链表的各种操作(一)

    本篇文章是对用C语言实现单链表的各种操作进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++中typeid实现原理详解

    C++中typeid实现原理详解

    这篇文章主要给大家介绍了关于C++中typeid实现原理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • C/C++ Qt QChart绘图组件的具体使用

    C/C++ Qt QChart绘图组件的具体使用

    QtCharts 组件是QT中提供图表绘制的模块,用来绘制常规图形,本文就详细的介绍了QChart的使用,以及柱状图,折线图等常用的图形的实现,感兴趣的可以了解一下
    2021-11-11
  • 举例解析设计模式中的工厂方法模式在C++编程中的运用

    举例解析设计模式中的工厂方法模式在C++编程中的运用

    这篇文章主要介绍了设计模式中的工厂方法模式在C++编程中的运用,文中也对简单工厂模式和工厂方法模式进行了简单的对比,需要的朋友可以参考下
    2016-03-03
  • 基于C/C++ 常见误区详解

    基于C/C++ 常见误区详解

    本篇文章介绍了在c和c++中一些常见误区的详细概述。需要的朋友参考下
    2013-05-05
  • 探讨:将两个链表非降序合并为一个链表并依然有序的实现方法

    探讨:将两个链表非降序合并为一个链表并依然有序的实现方法

    本篇文章是对将两个链表非降序合并为一个链表并依然有序的实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++11/14 线程的创建与分离的实现

    C++11/14 线程的创建与分离的实现

    这篇文章主要介绍了C++11/14 线程的创建与分离的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • 优秀程序员必须知道的20个位运算技巧

    优秀程序员必须知道的20个位运算技巧

    掌握简单的位运算技巧还是必要的,所以今天写这篇文章把我积累的一些位运算技巧分享给大家,这些技巧不会是如求“1的数目”的技巧,是最基本的一行位运算技巧
    2013-09-09
  • C语言中的内存管理详情

    C语言中的内存管理详情

    这篇文章主要介绍了C语言中的内存管理详情,手工申请内存使用malloc展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • C语言使用Bresenham算法生成直线(easyx图形库)

    C语言使用Bresenham算法生成直线(easyx图形库)

    这篇文章主要为大家详细介绍了C语言使用Bresenham算法生成直线,基于easyx图形库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论