首页 > 分享 > 常见误区

常见误区

前言

目前 OI 界有许多谣言,有些很扯淡但是有人信。。。

所以我想写一篇博客来纠正一部分。

如果我的观点也有错误,请指正;也欢迎补充一下。

可能更好的阅读体验?

正文

语言本身

关于 C++ 是弱类型语言还是强类型语言,网上说法颇多。武断地说是强类型语言是不合适的。

卡常

register 其实没有什么用,目前已经被移除。值得一提的是,即使写了 register 也不一定会放在寄存器内。不要认为你比编译器聪明,编译器比你更懂优化。 无谓的位运算也完全没有意义。例如,在快读中的 x*10+c-'0',如果写成 (x<<3)+(x<<1)+(c^'0') 几乎完全没有优化,甚至有时会负优化。不要认为你比编译器聪明,编译器比你更懂优化。 inline 其实也没很大作用。写上 inline 准确的说,只是你建议编译器内联,而非要求。编译器可以选择不鸟你。而且,如果你对一个巨大长的函数内联,反而会有负优化。

库函数和 STL 误区

pow/sqrt/exp/log 等函数是理论 的,只是常数比较大或者精度掉渣。 memset 和 strlen 等是小常数 ,非必要慎用。 stack/queue 内部实际是依靠 deque 实现的,空间常数其实很大。 不要神秘地鄙视 cin/cout,关同步流后 cin/cout 速度和 scanf/printf 是一个量级的。 STL 几乎用的都是左闭右开区间。例如 .end() 指向的是最后一个元素位置的下一个位置。 __builtin_popcount 等函数复杂度都是 ,且适用于 unsigned int 类型,若是 long long 请用 __builtin_popcountll 等。 STL 容器的 .size() 的返回值是 unsigned 类型,i<s.size()-1 在 s 恰好为空时会挂掉。但是形如 for(int i=s.size()-1;~i;i--) 则不会挂。

杂项

#define int long long 有说法认为是 ub。不过无论如何,这样会拉大空间时间的常数,风险较大。 逗号表达式从左到右运算。 printf 输出浮点数,无论是单精度还是双精度都应该使用 %f 输出。 前言正文    语言本身    卡常    库函数和 STL 误区    杂项

__EOF__

本文作者: Syara 本文链接: https://www.cnblogs.com/Syara/p/17114727.html 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。

相关知识

石榴树病虫害防治常见误区
养花常见的三个误区 养花的常见错误做法
苦瓜施肥要点和常见误区
5个常见养花误区,新手必看!
红枫病虫害防治的常见误区
大棚芹菜常见施肥误区
果树夏剪注意事项和常见误区
养生之孕妇常见保健误区
桉树常见施肥误区
最常见养花误区,最实用养花小技巧

网址: 常见误区 https://m.huajiangbk.com/newsview1427410.html

所属分类:花卉
上一篇: 企业网站常见误区
下一篇: 图解支付系统简洁而精妙的状态机设