C++的几个提速小技巧

本文分享了提高C++程序效率的一些实用技巧,包括使用printf和scanf替代cout和cin,利用ios::sync_with_stdio(false)加速输入输出,选择Release模式编译,优先使用++i,考虑平台差异,避免过多的除法运算,以及使用更优的算法等。通过这些方法,可以显著提升程序运行速度。
摘要由CSDN通过智能技术生成

今天给大家分享一些关于C++程序提速的技巧,真的非常有用!

1、输入输出尽量用printf和scanf,用cout和cin会慢很多。

2、如果一定要用cout和cin,建议使用ios::sync_with_stdio(false)这行代码,他可以让cout和cin的速度大大提升,和print、scanf的速度相差无几。

#include <bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    for (int i = 0; i < 500000; ++i){
        cout << i;
    }
    return 0;
}

加上ios::sync_with_stdio(false)这段代码的运行时间是2.5s,如果不加就是45.2s。可见他的效果不一般,能让输入输出的速度快几十倍!

注意:用ios::sync_with_stdio(false)的时候不能使用printf或scanf,不然会出错!

3、使用Release版本的编译器,不用Debug。Debug版本的编译器编译出来的程序会慢很多。

4、尽量使用++i而不是i++。++i的速度不会比i++慢。两者除了速度上有差别以外,含义上也有区别。++i是先让i加1,再返回i的值;而i++是先返回i的值,再让i加1。

#include <iostream>
using namespace std;
int main(){
    /*
    for (int i = 0; i < 100; i++){
        //代码
    }
    */

    //这个比上面的更快
    for (int i = 0; i < 100; ++i){
        //代码
    }
}

5、不同的平台做出来的程序的速度也不一样。比如Dev C++做出来的程序比Visual Studio的快一点。

6、操作int类型的速度比double或float快。

7、文件的输入输出会比普通的输入输出慢。访问速度:cpu寄存器 > cache > 内存 > 虚拟内存 > 磁盘其它部位。

8、减少除法运算。例如:a/b>20可改为a>b*20。

#include <bits/stdc++.h>
using namespace std;
int main(){
	srand((int)time(NULL));
    for (int i = 0; i < 1000; ++i){
    	int tmp1 = rand(), tmp2 = rand();
    	/*
    	if (tmp1 / tmp2 > 10) cout << i << endl;
    	*/
    	
    	//这个比上面的快 
    	if (tmp1 > 10 * tmp2) cout << i << endl;
    }
	return 0;
} 

9、使用更好的算法,降低时间复杂度(当然,这也是最好的方法)。

以上就分享到这里。谢谢大家!(记得点赞+关注)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值