char類型變量可以存儲(chǔ)一個(gè)字節(jié)的字符,它用來(lái)保存英文字符和標(biāo)點(diǎn)符號(hào)是可以的,但是對(duì)于漢字、韓文以及日文這樣的字符卻不可以,因?yàn)闈h字、韓文以及日文每一個(gè)文字都占據(jù)兩個(gè)字節(jié),為了解決這個(gè)問(wèn)題,c++提出了wchar_t類型,稱之為雙字節(jié)類型,又稱寬字符類型。
int main(int argc, wchar_t* argv[]){ //使用setlocale函數(shù)將本機(jī)的語(yǔ)言設(shè)置為中文簡(jiǎn)體 setlocale(LC_ALL,"chs");//LC_ALL表示設(shè)置所有的選項(xiàng)(包括金融貨幣、小數(shù)點(diǎn),時(shí)間日期格式、語(yǔ)言字符串的使用習(xí)慣等),chs表示中文簡(jiǎn)體 wchar_t wt[] = L"中國(guó)你好!";//大寫字母L告訴編譯器為"中"字分配兩個(gè)字節(jié)的空間 wcout<<wt<<endl;//使用wcout來(lái)代替cout輸出寬字符,wcin類代替cin輸入寬字符 cout<<wcslen(wt)<<endl;//wcslen輸出寬字符串的長(zhǎng)度,輸出長(zhǎng)度是5 cout<<sizeof(wt)<<endl;//輸出長(zhǎng)度是12個(gè)字節(jié),最后的wchar_t類型的'/0'兩個(gè)字節(jié) return 0;}了解這兩個(gè)函數(shù)的區(qū)別,首先要搞清楚容器的capacity(容量)與size(長(zhǎng)度)的區(qū)別。size指容器當(dāng)前擁有的元素個(gè)數(shù);而capacity則指容器在必須分配新存儲(chǔ)空間之前可以存儲(chǔ)的元素總數(shù)。也可以說(shuō)是預(yù)分配存儲(chǔ)空間的大小。resize( )改變?nèi)萜鞯膕ize,reserve( )改變?nèi)萜鞯腸apacity。
resize(n) 調(diào)整容器的長(zhǎng)度大小,使其能容納n個(gè)元素。如果n小于容器的當(dāng)前的size,則刪除多出來(lái)的元素。否則,添加采用值初始化的元素。resize(n,t) 多一個(gè)參數(shù)t,將所有新添加的元素初始化為t。reserve(n) 預(yù)分配n個(gè)元素的存儲(chǔ)空間。新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注