在OI / ACM中防止命名冲突的策略

C++命名规范与陷阱
本文探讨了在OI/ACM竞赛中使用C++时如何避免命名污染的问题,特别是使用万能头文件bits/stdc++.h结合using namespace std所带来的潜在风险。文章提供了具体的命名建议,并列举了一些应避免使用的单词。
部署运行你感兴趣的模型镜像

众所周知,在OI / ACM中常常会使用万能头文件 bits/stdc++.h,为了方便,又会常常加入 using namespace std 导入 std 命名空间内所有名称。

然而方便是方便了,这样做又会导致命名污染。比如 y0 ,偏偏有的时候用之前忘了定义,又不正确地使用了。编译器不会报错,一运行就是 Runtime Error ,就会无端端浪费很多 debug 时间。笔者没经历过这种事情,不过也有所耳闻。于是特地研究了 std 空间内预定义的名称,总结了以下命名策略。

1.不要使用下划线&全大写
2.尽可能短 5字符以下
3.避开常用的类、函数、动词及容易混淆的缩写
4.采用一套方便而防冲突的方法,如驼峰命名法或尾字符双写等
5.避开以下词:

j0   j1   jn   y0   y1   yn   arg

count   div   left   right   ws   dec   hex

oct   exp   polar   real   signal

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值