大家在學習C語言的時候是不是都對++i與i++有點過了解呢?那么你知道++i與i++的效率哪個更高嗎?下面我們就帶著這個問題一起去看看吧,希望對你有所幫助。
答案:
在內建數據類型的情況下,效率沒有區別;
在自定義數據類型的情況下,++i效率更高!
分析:
(自定義數據類型的情況下)
++i返回對象的引用;
i++總是要創建一個臨時對象,在退出函數時還要銷毀它,而且返回臨時對象的值時還會調用其拷貝構造函數。
(重載這兩個運算符如下)
?
class MyInterger{
public:
??? long m_data;
public:
??? MyInterger(long data):m_data(data){}
??? MyInterger & operator++(){
??????? cout<<"Integer::operator++() called!"<<endl;
??????? m_data++;
??????? return *this;
??? }
??? MyInterger operator++(int){
??????? cout<<"Integer::operator++(int) called!"<<endl;
??????? MyInterger tmp = *this;
??????? m_data++;
??????? return tmp;
??? }
};
int main()
{
??? MyInterger a = 1;
??? a++;
??? ++a;
??? return 0;
}
看完后你知道++i與i++的效率哪個更高了嗎?如果你們感興趣的話可以去研究一下更多C語言技巧哦,網上也有很多關于這方面的資料大家可以參考下。
新聞熱點
疑難解答
圖片精選