常用的卡常方法

本文分享了一些C++代码优化的方法,包括分支结构优化、bool变量的使用、数组大小的选择、指针应用、避免使用某些库函数、循环优化、inline与register关键字的应用、位运算的运用以及文件读写优化。通过这些技巧,可以显著提高程序运行速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学了些玄学的东西,感觉效果非常明显,加了玄学优化程序立马跑得飞快。

最近比赛反正特别卡常,学些玄学的东西也并非浪费时间嘛QAQ。

这里参考了一些大佬的文章,结合自己的卡常心得,给出几种卡常方法。

NO.11 分支结构优化

三目运算符比if-else快。

NO.10 bool优化

把bool改成int反而更快。。。如果要用到bool数组可以用bitset代替QAQ。

NO.9 数组尽量开奇数大小与变量优化

原因不明……变量优化的话尽量开作用域小的变量,因为建立新变量不耗时,且局部变量访问比全局变量快。

NO.8 适当使用指针

直接指针访问比数组+下标要快一些。

先访问a[i]后访问a[i+1]和a[i+2]这些会快很多。

但是指针使用不当会造成很大的负优化,还会使程序复杂,容易RE。

NO.7 少用algorithm的max,min,swap

推荐手写(这是我个人的习惯,有时也直接用if和三目运算符代替,速度会比用库函数快)。

NO.6 代替取模

用减法搞就行了,比如 i % n (1≤n<2∗n1 \leq n < 2 * n1n<2n)改为i >= n ? i - n : i

NO.5 循环里乱搞

for (int i = 1; i <= n; i ++)改为for (int i(1); i <= n; ++ i) 更快。

NO.4 inline与register

在循环变量之前加register,在函数前加inline,可以相当有效的优化常数。

就像这样:

inline int Function()
{
   
   
//program……
}
for (int i = 1; i <= n; ++ i)
改为
for (register int i = 1; i <= n;  i ++)

NO.3 数组优化

比如说一个能开一万的数组你非要开

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值