4-1(string底層的所有實現)

今天主要將昨天未學完的string底層實現學完了,而且一一實現。ide

增長:函數

insert(pos,ch);insert(pos,str)便可插入字符,也能夠插入字符串。須要注意就是插入須要移位。學習

resize(n,ch)的實現:主要是將size的值變爲n,若是size不夠,則補ch,分爲3種狀況,一、n<size; 二、n>size;   三、n>capacity;指針

erase(pos,len)pos位置開始刪掉len長度的字符串。對象

find(pos,ch);在pos位置開始找ch,或者find(pos,str)pos位置開始找字符串str,找到範圍下標,沒找到返回npos。ci

另外學習了拷貝和賦值的現代實現寫法字符串

傳統寫法都是對象本身開闢空間以及本身對象本身複製,現代寫法是利用別的對象拷貝,而後交換。string

也就是利用一個新的對象調用構造函數,在其初始化時就將被拷貝對象的指針初始化給了新對象,再利用swap將其指針轉換,這樣qi就不須要本身動手了。如it

//string s2(s3)class

string tmp(s3._str);//這一步就將s3當初始值給了tmp;

swap(_str,tmp._str);交換s2和tmp的指針,就完成了拷貝構造。


賦值更加簡單,再傳值的時候就將其拷貝給了新的對象。

相關文章
相關標籤/搜索