c++ 中 ++i和i++的區別


++i++j相比於寫i++j++,程序的執行速度更快。回顧++被重載成前置和后置運算符的例子如下:

CDemo CDemo::operator++ ()
{  //前置++
    ++n;
    return *this;
}
CDemo CDemo::operator ++(int k)
{  //后置++
    CDemo tmp(*this);  //記錄修改前的對象
    n++;
    return tmp;  //返回修改前的對象
}

后置++要多生成一個局部對象 tmp,因此執行速度比前置的慢。同理,迭代器是一個對象,STL 在重載迭代器的++運算符時,后置形式也比前置形式慢。在次數很多的循環中,++ii++可能就會造成運行時間上可觀的差別了。因此,本教程在前面特別提到,對循環控制變量i,要養成寫++i、不寫i++的習慣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM