通过删除最后一个参数,简化(a; b; c)到C++中的(x; y;)

Kus*_*vil 2 c++ loops for-loop

让我们考虑在C++中跟随循环,其中A是向量或其他容器使用.size():

for(int n=0; n < A.size(); ++n)
    cout << A[n];
Run Code Online (Sandbox Code Playgroud)

我认为它等同于下面的循环(至少在这种情况下,如果它不是真的完全等价,你能帮我找出原因吗?我找不到反例)

for(int n=-1; ++n < A.size(); )
    cout << A[n];
Run Code Online (Sandbox Code Playgroud)

以某种方式使用第一个循环比第二个更好吗?我看到人们到处使用第一个循环,但从未见过第二个循环.为什么没有人像第二个例子那样做?是否有一些反指示不这样做?在这两种情况下,n当我们执行第二行代码时,值也是相同的,同样在退出循环时,我们具有相同的值.第二个循环可以出错吗?

对我来说,第二个似乎更简单.

Joh*_*nck 7

第一个更好,因为它是传统的.第二个将让未来的读者摸不着头脑,咒骂你的名字.