介紹乙個模擬std string的類

2021-05-11 07:17:17 字數 1199 閱讀 2352

今天我們來編寫乙個模擬

c++標準庫中

std::string

的類。大家都知道,在

c++標準庫中有乙個

string

類,提供了一系列字串相關的操作,簡潔、方便、可靠。但是,如果由於種種原因,我們無法得到

stl的支援怎麼辦?求人不如求己,讓我們自己設計乙個類(名為

mystring

),模仿

std::string

的功能,同時複習一下相關的語言知識吧!

1

資料成員

2

成員函式

將成員函式分為

2類。一類作為介面,宣告為

public

;另一類在

mystring

內部使用,宣告為

protected。

2.1

介面函式

2.1.1

建構函式和析構函式

作為介面中的介面,建構函式可要設計好,設計全。就像吃烤鴨,黃瓜條、蔥絲、甜麵醬,乙個都不能少:

2.1.2

運算子過載函式

作為對std::string

的模仿,需要支援賦值運算=、

+=;關係運算==、

>

、<

和下標運算子

2.1.3

mystring

類屬性函式

2.1.4

字串操作函式

2.2

輔助函式

3

結尾

以上就是模擬

std::string

的mystring

的實現。怎麼樣,是不是對字串的理解又加深了一步呢?這個類來自於開源專案

timyxml2.1.1

中乙個字串類(

tixmlstring

),在後續的版本中該類還有不小的變化,有興趣的網友可以在網上搜一下其源**自己研究。

std string的乙個隱蔽錯誤

先看第乙個程式,for迴圈生成5個key,然後把它們對應的字串位址放入vector中,最後依次輸出字串。include include include std string genkey int i intmain for auto p vec return0 從 邏輯來說,應該會依次輸出5個不同的...

模擬乙個js new乙個物件的過程

function person person.prototype.getname function function createobj var a createobj person console.log a 上述 createobj 模擬了js new乙個物件的過程,從該函式的 中可以清晰的看到...

兩個棧模擬乙個佇列 兩個佇列模擬乙個棧

解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...