对于正整数,写 i != 0 比写 i > 0 更快还是更慢?

PLP*_*ers 7 language-agnostic performance

想象一下我有一个程序需要检查变量是否i大于零。i总是积极的,所以说 thati > 0相当于说i != 0

这两个表达式之间是否存在性能差异?为什么?

我知道没有明显的性能差异,这更多的是一个哲学问题。

Meh*_*dad 4

我不认为它有明显的不同,但与流行的观点相反,我将告诉您使用!=而不是>or ,<因为前者是更通用的操作,并且如果您要将代码转换为 C++并使用迭代器而不是指针,并非所有迭代器都支持<or >(但它们都支持!=)。

  • 过早的甚至不是优化。`!=` 适用于前向迭代器,但不适用于大于 1 的步幅。 `&lt;` 适用于大步幅,但仅适用于随机访问迭代器。哪个是首选是非常具体的上下文。 (4认同)