相关疑难解决方法(0)

std :: for_each优于for循环的优点

std::for_eachfor循环有什么优点吗?对我来说,std::for_each似乎只是阻碍了代码的可读性.为什么有些编码标准推荐使用?

c++ foreach stl coding-style

158
推荐指数
9
解决办法
11万
查看次数

这个替代'for'循环语法有什么基础吗?

我遇到了一组用于C++ 咆哮的幻灯片.这里和那里有一些有趣的花絮,但是幻灯片8对我来说很突出.其内容大约是:

不断变化的风格

旧的和破坏的:

for (int i = 0; i < n; i++)
Run Code Online (Sandbox Code Playgroud)

新热度:

for (int i(0); i != n; ++i)
Run Code Online (Sandbox Code Playgroud)

我之前从未见过for使用第二种形式的循环,所以声称它是"新热"让我感兴趣.我可以看到它的一些基本原理:

  1. 使用构造函数和复制初始化直接初始化
  2. != 可能比硬件更快 <
  3. ++i不需要编译器保持旧的值i,这是i++可以做的.

我认为这是不成熟的优化,因为现代优化编译器会将两者编译成相同的指令; 如果有的话,后者更糟糕,因为它不是一个"正常" for循环.使用!=而不是<对我来说也是可疑的,因为它使循环在语义上与原始版本不同,并且可能导致一些罕见但有趣的错误.

for循环的"新热度"版本是否受欢迎?这些天是否有任何理由使用该版本(2016+),例如不寻常的循环变量类型?

c++ for-loop

45
推荐指数
4
解决办法
3935
查看次数

标签 统计

c++ ×2

coding-style ×1

for-loop ×1

foreach ×1

stl ×1