測試發現
1. std::string value(2, ‘a’);
結果: value.size() == value.length()==2; value.capacity()==31
std::string value(31, ‘a’);
結果: value.size() == value.length()==value.capacity()==31;
2. std::string value(32, ‘a’);
結果: value.size() == value.length()==32; value.capacity()==63;
std::string value(63, ‘a’);
結果: value.size() == value.length()==value.capacity()==63;
3. std::string value(80, ‘a’);
結果: value.size()==value.length()==80; value.capacity()==95;
std::string value(95, ‘a’);
結果: value.size()==value.length()==value.capactiy()==95;
舉這3個例子不難發現
a) . size() 和 length() 效果一樣,不過C++的話,傾向於用 size();
b) . string的容量,也就是capactiy(),如果 value值為空,則capactiy()==0;
否則,capacity() 初始值為32,根據string 存儲的量的變化而變化
初始值=32,步長=32;
作者 “8023”