標題 [筆記] i++ 好,還是 ++i 好?
時間 2012/04/04 Wed 17:41:35
───────────────────────────────────────
不負責任聲明:以下憑印象+google寫成,有錯誤很正常 0rz
如果有人願意指出錯誤,我會很感謝您的 <(_ _)>
--------------------本文開始分隔線--------------------
下面是我們常用到的迴圈
for(i=0 ; i<? ; i++)
{
(something)
}
大家常用 i++ 還是 ++i 呢?
其背後的運作模式為何?
T& opertor++ ()
{
a = i++;
a = ++i;
}
取址運算子 &
取值運算子 *
i++
temp = (*this); // temp = i
++*this; // i = i + 1
return *temp; // return = temp
++i
++*this; // i = i + 1
return *this; // return i
簡單來說,i++ 背後會比 ++i 多複製了一次(我印象中聽到是兩次…0rz)
如果 i++ or ++i 的 i 只是單純的資料型態,如 int
那麼先加或後加就沒什麼太大的差別了
但是如果 i 是代表一個很大的物件
那麼多做的那些動作對於程式執行的效率就會有所影響
因此建議盡可能養成使用 ++i 的寫作習慣 (不過我已經寫了快七年的 i++ 了…0rz)
(對於ints 和 pointer,編譯器最佳化可將這額外的動作去除。但對於較複雜的
iterator 型別,這個額外動作的潛在代價可能很高。)
--
身高不是距離
技巧不是問題
只要有"心"
人人都可 定‧三‧米
--
▅◣ Origin: 謠 言 報 bbs.csie.fju.edu.tw
▋◤ Author: ie945167 從 219-85-0-189-adsl-nei3.dynamic.so-net.net.tw 發表
沒有留言:
張貼留言