關(guān)于string對(duì)象的一些事
1.string對(duì)象來源于C++標(biāo)準(zhǔn)庫(kù)string;,表示一種可變長(zhǎng)的字符序列,定義在命名空間std之中。
2.string對(duì)象無初始值默認(rèn)為空字符串。
3.若是使用等號(hào)對(duì)string變量進(jìn)行初始化,屬于拷貝初始化,不使用等號(hào),如string s6("hiya"); string s7{"11123"}; string s8(10,"c");等,則屬于直接初始化。
4.在C++中,可以這樣的方法while(std::cin >> s),原理是:括號(hào)內(nèi)的表達(dá)式在讀取到空格或換行時(shí),會(huì)結(jié)束一次循環(huán)。
5.可以使用getline函數(shù),參數(shù)是一個(gè)輸入流和string對(duì)象,如getline(std::cin,s),一旦讀取到換行符,才算一次結(jié)束。
6.每個(gè)string對(duì)象都有empty()和size()函數(shù),前者在對(duì)象為空時(shí)會(huì)返回1,后者會(huì)返回對(duì)象的長(zhǎng)度。注:size()返回值類型屬于string::size_type類型,不得與int類型變量在同一個(gè)表達(dá)式中使用。
7.string對(duì)象間比較規(guī)則:(1)部分相同比長(zhǎng)度(2)遇到不同比第一個(gè)相異字符,若誰的第一個(gè)相異字符對(duì)應(yīng)的ASCII碼更大,誰就更大。
8.string對(duì)象可以和字符串字面值相加,如string s = "o" + s1;,但是string s = "p" + "q";,則是非法的,因?yàn)閮蓚€(gè)字面值無法相加,這是由于C++為了兼容C語言而背上的歷史包袱,導(dǎo)致字面值并非屬于string類型,而是char[]類型。
9.由于string對(duì)象屬于一個(gè)字符序列,使得它可以被用于C++11標(biāo)準(zhǔn)中規(guī)定的一種新的for語句:范圍for語句,其形式是for(declaration : expression) expressions; ,使用如此辦法可以遍歷序列中的每一個(gè)元素。若是想改變string中的每一個(gè)字符,可以在范圍for語句中聲明string元素的引用,然后在循環(huán)體中用引用來修改元素。
10.s[0]返回的是s對(duì)象的第一個(gè)元素的引用。
關(guān)于vector的一些事
1.vector與數(shù)組類似,它是動(dòng)態(tài)的,使用的時(shí)候不指定長(zhǎng)度性能會(huì)更高,使用c的習(xí)慣給vector預(yù)先設(shè)定長(zhǎng)度反而性能更低。
偶然發(fā)現(xiàn)
1.C++中單引號(hào)括起來的是字符,雙引號(hào)括起來算字符串
浙公網(wǎng)安備 33010602011771號(hào)