左移运算符.cpp

Ysp*_*Ysp -4 c++ binary-operators

我在竞争性编程编辑中找到了 CPP 数组的定义

long long s1[1<<10][1<<10],s2[1<<10][1<<10]
Run Code Online (Sandbox Code Playgroud)

为什么这样写我们可以简单地写成

 s1[1024][1024]
Run Code Online (Sandbox Code Playgroud)

这背后有什么原因吗?

eer*_*ika 5

通常写入诸如 的恒定位移位1u << N是为了强调该数字是 2 的 N 次方。

应避免“神奇数字”,像 1 和 10 这样的小数字比大数字“没有那么神奇”。我仍然建议使用命名常量来阐明为什么专门使用 10。