标准是否保证,如果新大小小于或等于旧大小,std :: string :: resize将不会重新分配内存?

时间:2013-05-09 13:25:12

标签: c++ string resize

我需要经常将一个字符串设为空,然后在其中附加一些字符。 std :: string :: clear()可以重新分配 std :: string :: resize(0)是否重新分配?标准的话并没有对它有所了解。

1 个答案:

答案 0 :(得分:0)

我认为最好的答案是" Notes" http://en.cppreference.com/w/cpp/string/basic_string/clear部分。

  

与std :: vector :: clear不同,C ++标准没有明确要求此函数不改变容量,但现有实现不会改变容量。

如果容量不变,那几乎肯定意味着不会调用分配或释放函数。这可能是你能做的最好的事情,而不是看你关心的每一个实现。