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