我在C++中有这个片段。C++字符串中的“大小”和“容量”之间的区别?
#include <iostream>
#include <string>
int main()
{
string bigNews("I saw Elvis in a UFO. ");
cout << bigNews << endl;
bigNews.insert(0, " thought I ");
cout << bigNews << endl;
cout << "Size = " << bigNews.size() << endl;
cout << "Capacity = "
<< bigNews.capacity() << endl;
bigNews.append("I've been working too hard.");
cout << bigNews << endl;
cout << "Size = " << bigNews.size() << endl;
cout << "Capacity = "
<< bigNews.capacity() << endl;
return 0;
}
而且我得到的输出如下图所示:
I saw Elvis in a UFO.
thought I I saw Elvis in a UFO.
Size = 33
Capacity = 44
thought I I saw Elvis in a UFO. I've been working too hard.
Size = 60
Capacity = 88
我可以计算出尺寸增大的原因,但我不能够做出来怎么容量增大?
我知道的是容量是字符串缓冲区,我们可以推送,但如何分配空间?
只要满足该类的复杂性要求,就不能保证以任何特定方式进行分配。 – chris