for ループの効率を高める方法 – GigaDevice の革新的な側面

1. インスタンス化された変数をループの外に配置します。

#include <iostream>

int main() {
    // 实例化变量放在for循环外部
    int my_variable = 0;

    for (int i = 0; i < 5; i++) {
        my_variable += i;
        std::cout << my_variable << std::endl;
    }

    return 0;
}

2、i++改为++i:

【013 キーワード】++aとa++の違い 

ポストインクリメント演算子は、元の変数の値を一時記憶域にコピーする必要があります。一時変数の値は、演算が完了するまで返されません。したがって、前置インクリメント演算子は後置インクリメント演算子よりも効率的です。

3. ループ条件では、<= よりも高速になるように <、>= よりも高速になるように > を使用します。

ループ条件で < を使用した方が <= よりも高速で、> が >= よりも高速である理由は、主に演算子の計算の複雑さの違いによるものです。

具体的には:

< と > は、2 つの値の大小関係のみを比較する単純な 2 項関係演算子です。

<= と >= は、実際には最初に < または > の判定を行ってから、再度 = 条件を判定します。

4. 二重層の for ループは配列上で動作します。長いループは内側の層で効率が高く、長いループは外側の層で効率が低くなります。

配列は、要素の格納順序と一致する行優先アクセス原則を採用しています。


参考内容:演算効率を向上させる複数のforループの最適化_多数のforループの計算速度の最適化_Shan Yuのブログ - CSDN Blog

おすすめ

転載: blog.csdn.net/qq_41709234/article/details/132645897