size()
表征的是字符串的长度;capacity()
表征的是字符串占用的内存字符长度。甚至可以使用reserve()
来自定义一个字符串的最小内存字符长度
代码
#include<iostream>
#include<string>
int main()
{
using namespace std;
string empty;
string small = "yuki";
string larger = "hablee and yuki love forever";
cout << "Sizes:\n";
cout << "\tempty: " << empty.size() << endl;
cout << "\tsmall: " << small.size() << endl;
cout << "\tlarger: " << larger.size() << endl;
cout << "Capacities:\n";
cout << "\tempty: " << empty.capacity() << endl;
cout << "\tsmall: " << small.capacity() << endl;
cout << "\tlarger: " << larger.capacity() << endl;
empty.reserve(50);
cout << "Capacity after empty.reserve(50): " // 50的天花板在2次幂下最小应该是64,所以应该是63(还有\0)
<< empty.capacity() << endl;
return 0;
}
结果
Sizes:
empty: 0
small: 4
larger: 28
Capacities:
empty: 15
small: 15
larger: 31
Capacity after empty.reserve(50): 63