探討++i與i++哪個效率更高
答案:
在內(nèi)建數(shù)據(jù)類型的情況下,效率沒有區(qū)別;
在自定義數(shù)據(jù)類型的情況下,++i效率更高!
分析:
(自定義數(shù)據(jù)類型的情況下)
++i返回對象的引用;
i++總是要創(chuàng)建一個臨時對象,在退出函數(shù)時還要銷毀它,而且返回臨時對象的值時還會調(diào)用其拷貝構(gòu)造函數(shù)。
(重載這兩個運算符如下)
#include <iostream>
using namespace std;
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;
}
相關(guān)文章
Matlab制作視頻并轉(zhuǎn)換成gif動態(tài)圖的兩種方法
這篇文章主要介紹了Matlab制作視頻并轉(zhuǎn)換成gif動態(tài)圖的兩種方法,第一種方法使用movie(f)直接取生成AVI視頻文件,相對來說比較簡單,需要的朋友可以參考下2018-08-08C++數(shù)據(jù)結(jié)構(gòu)之AVL樹的實現(xiàn)
AVL樹是高度平衡的而二叉樹,它的特點是AVL樹中任何節(jié)點的兩個子樹的高度最大差別為1,本文主要給大家介紹了C++如何實現(xiàn)AVL樹,需要的朋友可以參考下2022-06-06