今天,主要是繼續學習拷貝控制。在昨天的三/五法則之後,首先是知道使用=default是用合成版本的函式。之後,要明確我們定義的拷貝建構函式或者拷貝賦值運算子有些時候是要阻止拷貝的。在兩者後=default即使得定義存在,但之後無法呼叫,從而實現刪除函式。
e.g.
struct nocopy
hasptr(const hasptr&hp):ps(hp.ps),i(hp.i),use(hp.use)
hasptr& operator=(const hasptr &rhs)
i=rhs.i;
use=rhs.use;
return *this;
}; hasptr& operator=(hasptr rhs)//拷貝並交換,非常安全
bool operator<(hasptr &rhs)
treenode(string val):value(val),left(nullptr),right(nullptr),count(1)
treenode(string val,treenode *tleft,treenode *tright):value(val),count(1),left(tleft),right(tright)
treenode(const treenode& treenode)
treenode& operator=(const treenode& treenode)
void print()
{ cout13.3交換操作
有時為了達到目的我們不能使用標準sort,必須使用自己定義的sort排序。對於類值型別尤其要這樣做,上述的hasptr即為一例。swap中交換了兩個物件的指標,使得排序高速進行。還有h在有hasptr的情況下,hasptr的sort優先順序高於標準sort.注意其中特殊的操作:拷貝並交換。rhs創造了乙個副本,這樣就可以保證銷毀時沒有危險。
3月7 9日學習心得
這三天主要是學習10.3定製操作,主要是演算法中謂詞形參的使用。lambda 表示式 capture list parameters functype 要注意lambda表示式中可以無捕獲列表,可以無引數,可以無尾指函式返回型別。如果只有return 將根據返回值決定型別,但如果有非return 語...
7月16日學習心得
今天主要學習了各種外掛程式函式的呼叫,例如 private void ontriggerenter collider other 是乙個unity3d典型的碰撞模型函式,可以給予物體碰撞的物理效果是建立遊戲模型不可缺少的條件。對於函式類的重要性例如 public audioclip keypoint...
7月21日學習心得
tcp udp tcp與udp基本區別 1.基於連線與無連線 2.tcp要求系統資源較多,udp較少 3.udp程式結構較簡單 4.流模式 tcp 與資料報模式 udp 5.tcp保證資料正確性,udp可能丟包 6.tcp保證資料順序,udp不保證 udp應用場景 1.面向資料報方式 2.網路資料大...