分享
三行代码  ›  专栏  ›  技术社区  ›  Ethereal Unagi

更好的样式是什么?++x或x++in for循环

c++
  •  -2
  • Ethereal Unagi  · 技术社区  · 5 天前

    我正在和一个固执的人讨论,我知道这两种形式在语义上哪一种更正确,尽管代码没有逻辑上的区别:

    for(int x = 0; x < 10; x++)
    // do something
    

    2。

    for(int x = 0; x < 10; ++x)
    // do something
    

    2 回复  |  直到 5 天前
        1
  •  2
  •   Werner Henze    5 天前

    如果不需要增量后的副作用,那么增量前的版本更好。如果是 int

        2
  •  1
  •   Alex Guteniev    5 天前

    int

    i += 1 “(但对于迭代器来说,情况可能更糟)

        3
  •  0
  •   ΦXocę 웃 Пepeúpa ツ    5 天前
    // pre-fix operator
    MyCustomClass& operator++()
    {
        return *this;
    }
    
    // post-fix operator
    MyCustomClass operator++(int)
    {
      MyCustomClass tmp(*this);
      operator++();
      return tmp;
    }
    

    作为最佳实践:

    为了与内置操作符保持一致,您的内置后缀操作符 应返回旧值,则将该值作为值返回,而不作为引用 但是对于前缀运算符,应该返回对修改对象的引用。

        4
  •  0
  •   Bathsheba    5 天前

    如果打开优化的现代编译器为 x++ ++x

    我总是写信 ++十 x 在这种情况下,可能需要一个昂贵的副本,(I I)因为它在你的代码中隐藏了一条信息,让你思考这样的事情,(iii)因为我很守旧。

    (我坚持 ++十 在我的公司。)