std::string::reserve()方法 预分配指定大小内存
capacity()方法 返回对象内部实际缓冲区的大小
length() 或 size() 方法都返回实际字符串长度
std::string test_text;
test_text.reserve(200);
for(int k=0 ; k< 30; k++)
{
test_text.append("1234567890\r\n");
qDebug() << " capacity = " << test_text.capacity();
qDebug() << " length = " << test_text.length();
qDebug() << QString::fromStdString(test_text);
}
每当字符串实际长度突破了原有缓冲区大小,将重新分配,新分配大小是原来的约 150%
测试结果是 207 bytes --> 310 bytes --> 465 bytes