今天主要將昨天未學完的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的指針,就完成了拷貝構造。
賦值更加簡單,再傳值的時候就將其拷貝給了新的對象。