積跬步至千里 演算法強化訓練(5)關於類的幾個操作

2021-07-02 15:46:51 字數 1088 閱讀 7912

1、類的賦值函式

class cmystring

;

一般解法:

cmystring & cmystring::operator =(const cmystring &str)

更好的解法:

cmystring & cmystring::operator =(const cmystring &str)

return *this;

}

參見《劍指offer》,此方法考慮了異常安全性,構建的臨時物件在離開if時會自動呼叫析構函式,而temp和str指向的記憶體是乙個位置,所以會釋放例項的記憶體,達到目的。

2、單例模式

class singleton

; static singleton* instance = null;

public:

static singleton* getinstance()

};

考慮自動銷毀的話,則:

class singleton

; static singleton* instance = null;

class cgarbo//唯一工作時刪除instance例項

};static cgarbo garbo;//定義乙個靜態變數,程式結束時,自動呼叫其析構函式

public:

static singleton* getinstance()

};

3.不能被繼承的類

乙個類,如果不能被繼承,那麼當它的構造和析構函式是私有時,試圖繼承是,則必然會發生錯誤。

class nosealclass

static void deleteinstance(nosealclass* pinstance)

private:

nosealclass(){}

~nosealclass(){}

};

積跬步至千里 演算法強化訓練(7)大數問題

大數問題 當感覺用long或int已經不能滿足要求,需要考慮大數問題。大數問題將普通的數 算,轉移到字串上的操作。大數操作有很多寫法,但是我習慣用以下這個模板,因為對加法 乘法 減法都是乙個路子,便於記憶和理解。大數乘法 string multi string str1,string str2 大數...

積跬步至千里系列之十一 leetcode小結

刷leetcode一周了,從easy級別開始刷的。可能是自己基礎太薄弱,刷完之後容易忘記,另外,有些題有思路,但是不能正常快速的轉換成程式描述,程式的實現能力差。今天先把上週刷的5道題做個小的總結。1.zigzag conversion 之 字形字串反轉 p a h n 048 a p l s i ...

不積跬步無以至千里

1.開始閱讀此流程,如果你還沒開始的話。嚴格地按照步驟執行。2.讀一下習題指南,在xv xvii頁。3.令n 1。4.開始閱讀第n章。不要閱讀該章開始的引言。5.你對該章的話題有無興趣?如果有,跳到第7步,否則,跳到第6步。6.是否n 2?如果不是,跳到第16步。如果是,無論如何請將此章過一遍。第1...