1. 程式人生 > >c++的string容器

c++的string容器

c++相比c的一個好處就是實現了很多的容器和泛型演算法,使得程式設計師的工作得到了很大的化簡。其中一個很有用的泛型容器就是string。string是一個類,是一個在STL裡邊實現好了的類,由於他的很多功能都已經實現好了,所以對於程式設計師來說,這個stl模版類是很方便的。


string的初始化和定義


string str就可以完成string物件的定義,但是這時的str由預設建構函式來構造完成,字串的長度是0,可以在定義的時或就初始化,方法有以下幾種。
string str("hello world!");//hello world
string str(3,"he");//hehehe
string str(3,'h');//hhh


string的輸入輸出


可以用cin來得到string物件的輸入資料,但是這樣子得到的是不包括空格,tab以及換行的,如果想得到空格以及tab的話,就需要一個函式就是getline函式,getline(cin,str)就可以把cin物件的得到的的輸入流存到str物件裡邊,包括空格以及tab。


string物件size_tyep型別


string有一個函式是size(),作用是返回string物件的字串的長度,他的返回值就是一個string::size_type型別的值,他使用typedef來定義的,他定義在string標頭檔案中,他是一個無符號的整形,但是所佔用的位元組數目依靠不同的編譯器來定義,至少在g++的編譯器下是4個位元組的。
注意,對於size_type做比較操作的時候,一定要注意,如果一個負數與一個無符號的值比較的話,那麼一定會是負數大,因為補碼的緣故,所以比較的時候按照一位一位的比較,所以這一點切記。


string物件由於已經過載了很多的運算子,所以可以吧string物件當作其他的原子資料一樣,進行+的操作,以及比較。同時,還可以把string物件當作一個數組,用[下標]來訪問每一個字元。