for循环i++与++i效率对比

    技术2026-08-18  9

    最近发现i++与++i的效率原来不同。

    我一直是用 for (int i = 0; i < n; i++)

    但是++i效率更高! for (int i = 0; i < n; ++i)

    i++:需要申请一个临时变量保存i进行后续计算,再执行自增。
    ++i:直接原地自增,再进行后续计算,无需申请内存。

    这个微小的差别在数据量较大的时候会有明显的效率差别,所以我以后还是用++i吧(苦笑

    下面分享一下两者具体实现的区别:

    i++ const int int::operator++(int) { int oldValue = *this; ++(*this); return oldValue; }

    可以看到,需要申请临时变量oldValue保存初始值。

    ++i int& int::operator++() { *this += 1; return *this; }

    直接自增并返回,无需申请内存。

    Processed: 0.014, SQL: 9