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