首页 > 其他分享 >平生最伟大发明!

平生最伟大发明!

时间:2023-10-23 22:33:39浏览次数:31  
标签:do 平生 ... args while 伟大 高亮 发明 define

一个宏:

#define rep0(n) for (int i = 1, limi = n; i <= limi; ++i)
#define repa(i, n) for (int i = 1, limi = n; i <= limi; ++i)
#define repb(i, l, r) for (int i = l, limi = r; i <= limi; ++i)
#define repc(i, r, l, _) for (int i = r, limi = l; i >= limi; --i)
#define M5(a, b, c, d, e, ...) e
#define do(args...) M5(args, repc, repb, repa, rep0)(args)

它是 for 的一种 define。用法:

do (n) {  // 变量 i 遍历 1 ~ n
	// ...
}
do (j, n) { // 变量 j 遍历 1 ~ n 
	// ...
}
do (k, l, r) { // 变量 k 遍历 l ~ r
	// ...
}
do (i, r, l, _) { // 变量 i 从 r 递减到 l, 第四个参数用来占位
	// ...
}

用它可以提高冲题效率!/se

比如:

do (n) a[i] = read(); // 读入一列数

do (n) do (j, m)  // 读入矩阵
    w[i][j] = read();

等等

同时,do while 语句的使用不受影响


原理与思路

我们看到,很多人用的循环宏都类似于:REP, repFORForFFrof, ROF 这样的东西

他们很难用,因为不同的循环方式被定义成了不同的宏名

并且,虽然有的人通过不定参数宏实现了多种循环合一,他还是很丑陋

因为正常的 for有高亮的。自己定义的 FOR 或者 For 没有高亮

那能不能有这样一种宏,它:

  • 既集成各种功能于一体
  • 又简单易写,又在任何代码展示时都能有和谐的高亮

呢?


要想有高亮,就必须把某一关键字定义成宏

左找右找,我们最后发现,do 这个关键字,它只是为了 do while 而存在,那么就用 do 试试

然后再使用变长参数的技巧,通过不同的参数个数实现多功能合一

试验一下,能用!并且神奇的是 do while 语句不受影响

完结撒花


我取得这一发现之后在机房进行了大力安利,不过不知道为啥没有被普及

快两年过去了,再来炒一波冷饭(

这东西真的很好用啊!

标签:do,平生,...,args,while,伟大,高亮,发明,define
From: https://www.cnblogs.com/Xiwon/p/17783660.html

相关文章

  • Python潮流周刊#2:Rust 让 Python 再次伟大
    这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、Python修饰器的函数式编程介绍了装饰器的实现原理、带参装饰器、多装饰器、类装饰器和几个典型的示例。文章发布于2014年,代码用......
  • [Ynoi2016] 这是我自己的发明(根号分治+分块/莫队)
    题目传送门soltion简单题换根显然可以拆成\(O(1)\)个区间,这里先不管。直接做法是莫队,把双子树拆成\(dfs\)序上的双前缀,可以直接莫队,但是常数比较大。另一种做法是根分,对颜色出现次数分治,大于的求出\(dfs\)序的前缀和即可,小于的因为一共只有\(O(n\sqrtn)\)个点对,所以......
  • 一个伟大、孤僻、特立独行的灵魂:天才已去60年
    【说明:2014年6月7日是阿兰•图灵逝世60周年。这篇文章是图灵生平的缩影,摘自《图灵的秘密:他的生平、思想及论文解读》“第4章,图灵的学业”,由于原文太长,这里针对部分文字进行了删减和整理。】1912年6月23日,阿兰•图灵生于伦敦,是家中的第二个男孩。1926年图灵进入公立学校舍伯恩学......
  • 如何做出伟大的事业
    HowtoDoGreatWork Ifyoucollectedlistsoftechniquesfordoinggreatworkinalotofdifferentfields,whatwouldtheintersectionlooklike?Idecidedtofindoutbymakingit.如果您收集了在许多不同领域取得出色工作的技术列表,那么交集会是什么样子?我决......
  • 【AI新趋势期刊#2】AI发明计算机算法,如何给大模型排行,照片秒变二维码,视频一键动漫风
    前言每天都要浏览大量AI相关新闻,是不是感到信息量爆炸,有效信息少?这么多新产品和新工具,到底哪些是真正是有价值的,哪些只是浮躁的一时热点?想参与AI产品和工具的开发,从哪里能够获得大量的灵感和思路?我会把AI相关的新趋势、新想法、新思路,和成熟AI产品、工具、模型等整理在这里,帮......
  • 他是20世纪最伟大的发明家之一,却因竞争对手迫害,郁郁而终
    1969年,美国宇航员尼尔·阿姆斯特朗从登月太空飞船上爬下来。当他踏上月球时,这场盛事在地球上的电视机中播放。画质不是很好,很难看清宇航员阿姆斯特朗。月球表面非常亮,月球着陆工具投下的阴影非常黑暗。但是电视画面的质量并不重要。观看电视的每个男人、女人和孩子都知道他们是在......
  • AI教父Geoffrey Hinton:AGI革命堪比车轮的发明
    作者|YanaKhareAI教父:GeoffreyHintonGeoffreyHinton通常被认为是“人工智能教父”,他在机器学习广泛流行之前就一直是这个领域的开拓者。Hinton对人工神经网络和机器学习算法的发展做出了重大的贡献。Hinton是多伦多大学的教授,同时也是谷歌Brain的研究员。他参与发明了反......
  • BUUCTF:[SWPU2019]伟大的侦探
    题目地址:https://buuoj.cn/challenges#[SWPU2019]%E4%BC%9F%E5%A4%A7%E7%9A%84%E4%BE%A6%E6%8E%A2密码.txt可解压,misc文件夹需要解压密码,将密码.txt使用010Editor打开,使用EBCDIC编码即可发现密码明文解压,misc文件夹内容如下:福尔摩斯小人密码对照得到:iloveholmesandwllmflag{ilov......
  • 关于语音发送/接收 方法和装置发明专利正式发布
    北京时间,6月1日,三星电子申请专利:《语音发送方法和装置以及语音接收方法和装置、电子设备》,正式发布!该专利的发布旨在解决现有技术中,终端发送和接收语音时进行采样率转换的效果较差,无法向用户提供优质的听觉体验。此外,此项专利的核心特点是基于神经网络的语音发送方法和装置以及语音......
  • 重新发明轮子:创意过程是 2023 年唯一重要的商业纪律
    ​时下全球经济放缓,很多企业业务都陷入了增长瓶颈,如何突破?今天我们来聊聊一般业务突破的3种方式:发现一片新的蓝海,迅速杀入占领生态位(快);发现结构性红利机会,大量投入杀出优势(敢);深刻理解行业,洞察关键点,结合企业优势,建立长期优势(巧)。01发现一片新的蓝海,迅速杀入占领生态位(快)......