c++加速方法大全

这篇具有很好参考价值的文章主要介绍了c++加速方法大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们平常写代码的时候,经常超时,非常难受,所以,我写了这篇文章,让你的代码提升速度(这些方法作者亲测有效,用了这些方法,足足提升了1秒!虽然最后题目还是没过

1、读入、输出加速:

ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);

这三行代码可以提升我们cin和cout的读入和输出速度,具体原理我也不太懂,反正你也不用知道,会用就行了

但是我们要注意,就算我们用了这三行代码,cin和cout的读入输出速度还是没有printf和scanf快,所以想要加速的更快,就要用printf和scanf

这里还有一种加速方法,叫快读快写,似乎比printf更快(我也不知道是不是真的)

inline int read(){//快读
    int x=0,w=0;
    char ch=0;
    while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
    while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
    return w ? -x : x;
}
inline void write(int x){//快写
    if(x<0)putchar('-'),x=-x;
    if(x>9)write(x/10);putchar(x%10+'0');
}

原理嘛,多看几遍大概都能看懂,主要是怎么用

快读这么用:

int x;//要读入x
x=read();//x=read读入的值

快写这么用:

int x=5;//要输出x
write(x);//输出x

注意,快读不能读入字符,只能读入数字(读入字符一点反应也没有);快写不能写字符,只能输出数字

快读快写还用升级版:

namespace IO{
int len = 0;
char ibuf[(1<<20)+1],*iS,*iT,out[(1<<25)+1];
#define gh()    \
    (iS==iT?iT=(iS=ibuf)+fread(ibuf,1,(1<<20)+1,stdin),    \
    (iS==iT?EOF:*iS++):*iS++)
#define reg register
inline int read(){
	reg char ch=gh();
	reg int x=0;
	reg char t=0;
	while(ch<'0'||ch>'9')
		t|=ch=='-',ch=gh();
	while(ch>='0'&&ch<='9')
		x=x*10+(ch^48),ch=gh();
	return t ? -x : x;
}
inline void putc(char ch){
	out[len++]=ch;
}
template <class T> inline void write(T x){
	if (x < 0)
		putc('-'),x=-x;
	if (x > 9)
		write(x/10);
out[len++]=x%10+48;
}
inline void flush(){
	fwrite(out,1,len,stdout);
	len=0;
}
}
using IO::flush;
using IO::putc;
using IO::read;
using IO::write;

虽然我知道这是升级版,但我不会用╥﹏╥

2、O3优化:

#pragma GCC optimize(2)

写代码的时候,把这句写进去(写在头文件下面),就能加速了,这是O2优化,那什么是O3优化呢?

#pragma GCC optimize(3)

这就是O3优化,把2改成3就好了,很简单吧?而且O3确实比O2快(亲测有效)

3、i++和++i

注意了,我们平常老师教我们写循环,都是这样:

for(int i=1;i<=n;i++){

}

千万不能这么写,要这样写:

for(int i=1;i<=n;++i){

}

如果可以,把所有的i++换成++i,特别是循环的时候,如果循环几千几万次,时间真的差很多:

c++代码加速,c++

注意了,i++和++i的含义也有区别

++i先让i加1,再返回i的值;而i++是先返回i的值,再让i加1。

4、变量类型:

一般来讲,我是喜欢一直用longlong而不是int,因为一般没什么区别,还能防止数据溢出

但是!要注意!如果题目中很明显的告诉你,这个变量用int就够了,就不要傻傻地用longlong(比如题目说1<=n<=100,n用int就够了)

因为longlong的范围大了,运算的时间也更多了,会比int慢一倍!

比如int a;a+1可能要算1ms,

而long long a;  a+1可能要算2ms!!!


好了,这就是我知道的所有加速方法了,当然还是有一些小细节的东西,比如在循环内定义变量合在循环外定义变量有什么区别,这些我就不太懂了,你们可以找别的问文章文章来源地址https://www.toymoban.com/news/detail-731841.html

到了这里,关于c++加速方法大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c++病毒/恶搞代码大全( 上 )

    注:以下代码应勿用于非法(Dev-c++5.11实测可用) 1: 效果:无限生成cmd 解决方法:关闭程序即可   2: 效果:使鼠标所点应用消失 解决方法:暂无   3: 效果:使鼠标乱飞 解决方法: 任务管理器 (Ctrl+Alt+Delete)用方向键选该程序,点击Delete关闭   4: 效果:立刻或定时关机 解决方法:

    2024年02月13日
    浏览(33)
  • C语言、c++史上最全最全爱心代码大全,彩色闪动、字符填充,附源码

    直接上代码: 直接上代码 直接上代码 直接上代码

    2024年02月04日
    浏览(40)
  • 【2023王道数据结构】王道数据结构课后代码题汇总答案C、C++代码实现完整版大全(可直接运行)

    本文章为 2023王道数据结构专栏 导航贴,正在积极更新中! 本专栏文章将王道一些 课后算法设计题目 的全部实现(答案解析全部都是伪码或者函数的部分实现,不可调试运行), 同时包含各个章节的经典算法数据结构的实现以及一些经典的算法 本专栏使用人群:复习数据

    2024年02月16日
    浏览(41)
  • 【C++】C++代码性能优化的方法(全网最适用)

    本文将总结并详细介绍C++代码性能优化的方法,旨在为C++开发者提供一个全面、实用的性能优化指南。无论你是刚入门的新手,还是有经验的开发者,都能从中找到适用于你的优化技巧。 const 是一个修饰符,可以用来告诉编译器一个变量的值不应该改变。这样可以提高程序的

    2024年02月03日
    浏览(32)
  • 双目相机标定及高精度测量方法,含c++和python代码说明

    视觉测量定位中,双面相机高精度标定是一个重要的步骤。下面是关于如何进行双面相机高精度标定的说明和C++和Python代码实现。 1. 双面相机高精度标定的原理 双面相机高精度标定的目的是确定相机内部参数和外部参数。其中,内部参数包括焦距、主点和畸变系数等,外部

    2023年04月08日
    浏览(38)
  • Numba:加速python代码

     通常我们加速python代码是考虑把.py文件编译成.c文件,然后把.c文件编译成.so或.pyd文件,可以参考另一章博文: Cython为py程序加密提高性能_cythonize_Rnan-prince的博客-CSDN博客 现在我们考虑一种不用将py文件编译成.c文件的方法:numba,其实原理差不多,只是用户不感知。 Numba是

    2024年02月09日
    浏览(25)
  • Python代码加速100倍,针对Excel自动化处理的加速实战!

    说到并发编程,我们先来澄清一下并发 (Concurrency) 和 并行 ( Parallelism)这两个概念,因为这个两个概念的含义是不同的。 并行(Parallelism)指的就是在同一时刻,有两个或两个以上的任务的代码在处理器上执行。从这个概念我们也可以知道,多个处理器或多核处理器是并行执行

    2024年02月19日
    浏览(43)
  • 分享一些Python代码加速工具!

    这篇文章会提供一些优化代码的工具。会让代码变得更简洁,或者更迅速。 当然这些并不能代替算法设计,但是还是能让 Python 加速很多倍。比如适用于双向队列的 deque,以及在合适的条件下运用 bisect 和 heapq 来提升算法的性能。而且前面也提到过,Python 提供了当今最高级也

    2024年02月13日
    浏览(28)
  • 使用无代码和低代码机器学习加速任务结果

    : [Amazon Web Services re:Invent 2023, Amazon SageMaker Canvas, Machine Learning Models, No Code Tool, Accelerate Outcomes, Amazon Sagemaker Canvas, Model Building And Deployment] 本文字数: 1200, 阅读完需: 6 分钟 如视频不能正常播放,请前往bilibili观看本视频。 https://www.bilibili.com/video/BV1sc411i7iG 组织可以通过预

    2024年01月16日
    浏览(47)
  • Python实现视频加速效果(完整代码)

    Python实现视频加速效果(完整代码) 在日常生活中,我们可能需要对某些视频进行编辑,如加速、慢放等效果。Python作为一种以数据分析和计算为主要应用的脚本语言,拥有处理视频的能力。本文将提供Python实现视频加速效果的完整代码,供大家进行参考。 首先我们需要安装所

    2024年02月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包