首页 >> 大全

一、缩短代码、减少编程时间

2023-12-29 大全 19 作者:考证青年

文章目录 四、一些编译优化五、养成代码习惯

算法竞赛:一些c++的奇技淫巧

本文旨在不涉及算法的情况下,尽量帮助选手表现的更好

如对本文有任何疑问,可以私信

一、缩短代码、减少编程时间

对于相似的代码,可以思考如何用函数,#宏定义 等方式 减少代码长度。

既可以增加可读性,减少错误。

同时也能缩短编程时间、方便检查

很多人认为 # 会增加出现错误的可能。

因为预处理阶段会暴力替换被 # 的内容,容易出现 优先级 等问题。

这个 “暴力” 对宏定义简直再合适不过了。我最开始看到也觉得作者很幽默。

直到——偶然看见关于宏定义的一篇文章。

比如下面这段代码:

#include int main() {
#define m 5+5printf("%d", m * 10);
}

输出的就是 55 而不是期望的 100

缩短编程代码减少时间的方法_如何缩短代码运行时间_

而改一下,加上括号:

所以 # 通常会加括号避免优先级的问题。

此外,宏定义还可用于类似函数的作用,这里就不赘述了。

这是一方面,另一方面宏定义确实可以简化代码。

二、尽量使用模块化编程

例如把问题拆解成几个部分,分成函数分段解决

方便调试、查错

三、殿试 认证 时

弄死隋炀帝 感谢隋炀帝完善科举制度,让今天的我得以一天一小考,一周一大考。遗臭万年 流芳百世

殿试时,看到 皇帝 考官不要紧张,努力成为社交恐怖分子。

啊呸,说正经的。

心态

心态肯定是最重要的,保持良好心态,坦然面对。

考前准备

头天晚上(好是一周以内,一直更好)不要吃奇奇怪怪的东西,比如穿山甲。

易燃易爆枪支管制刀具等危害公共安全的东西更是随便带,看谁敢拦你

第二天便秘窜稀不要怪我没提醒,一堆警察冲进来更是相当搞同场选手的心态

四、一些编译优化

最常见的有# GCC (3)(打开O3优化)等。

而且对c/c++语言一般都会开O2

——如果非要不可

#pragma GCC optimize(3)
#pragma GCC target("avx","f16c","sse3","sse2","sse1")
#pragma GCC target("avx","sse4","sse4.1","sse4.2","ssse3")
#pragma GCC optimize("Ofast","-fgcse","-fgcse-lm","-fipa-sra")
#pragma GCC optimize("-ffast-math","-fpeephole2","-fsched-spec")
#pragma GCC optimize("unroll-loops","-falign-jumps","-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("unroll-loops","no-stack-protector")

绝对炸裂。放进你的代码里,生成 传 说 中 的 火车头 ,看了的都说好 亲身经历

五、养成代码习惯

养成固定码风。

比如,我喜欢在 意义/功能 不同的代码段中间空行。

突出代码逻辑,方便检查、阅读。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了