2

'>' よりも '<=' をチェックする方がコストがかかりますか?

最初のものは < と == の両方をチェックしますが、'>' は 1 つのチェックしか行いません。

それとも、コンパイラがこれを最適化しますか?

4

5 に答える 5

15

何を比較するかにもよりますが、組み込み型の場合、どちらも一般的に 1 つの機械語命令にすぎません。

于 2012-07-11T11:21:53.170 に答える
4

目立った違いはほとんどありません。この種の最適化を考えているのであれば、最適化を正しく行っていないに違いありません。

于 2012-07-11T11:22:36.043 に答える
3

非組み込み型の場合、必要に応じて両方の演算子をオーバーロードできます。

class Foo
{
public:    
    bool operator<=(const Foo &other) const
    {

    }

    bool operator<(const Foo &other) const
    {

    }

};

したがって、比較演算子がアプリケーションのボトルネックである場合、演算子を最適化<=し、別の方法で計算してから呼び出し<て計算することができます。==

于 2012-07-11T11:22:55.360 に答える
0

No.<=は基本的に>NOT を追加した場合と>=同じ<であり、NOT を使用した場合と同じです。(あるとすれば、どれに余分な NOT があるのか​​ わかりませんが、ハードウェアレベルでは基本的にすべて同じです。)

于 2012-07-11T11:44:13.013 に答える
0

いいえ、どちらも同じコストです。派手なものではなく、既知の標準コンパイラを使用していると仮定します

于 2012-07-11T11:23:50.330 に答える