在“for”语句中,我应该使用`!=‘还是`<?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我已经看到了这两个表述:

for(i=0;i<10;i++) 

for(i=0;i!=10;i++)

我知道他们在到达时都停下来,但使用第二个(我听说)似乎更好。有什么不同?我也想知道何时使用迭代器访问向量的成员,迭代器条件< vec.end()!= vec.end()

提问于
用户回答回答于
for(i = start; i != end; ++i)

这是“标准”迭代器循环。它的优点是它可以与指针和标准库迭代器一起工作(你不能依赖已operator<定义的迭代器)。

for(i = start; i < end; ++i)

这对标准库迭代器不起作用(除非他们已经operator<定义),但它的确有一个好处,就是如果你end因为某种原因过去了,它仍然会停止,所以它会更安全。我被教导在整数迭代时使用它,但我不知道它是否被认为是“最佳实践”。

我通常写这些的方式是喜欢<

用户回答回答于

两者都适用于大多数情况。

如果由于某种原因,循环中执行的代码体变为i大于10,第一个版本将停止循环,但第二个版本将永久执行。

扫码关注云+社区

领取腾讯云代金券