重置字符串,同时保持容量

Reset string while keeping capacity

本文关键字:容量 字符串      更新时间:2023-10-16

我在这里阅读了很多问题,因此如何完全清除字符串(即重置容量,释放内存)。我的问题恰恰相反;是否有任何可靠的方法来重置字符串(长度),同时保证其容量保持完整?

示例:在循环中重用临时字符串。

如果我做

之类的事情,默认情况下可能会发生这种情况
str.clear()
str.reserve(256)

在每个循环迭代中,至少在根据本文的答案中使用Visual Studio时:std :: String在Visual Studio上的特定行为?

但依靠"可能"似乎有些风险。

根据http://en.cppreference.com/w/cpp/string/basic_string/clear clear()无法免费内部缓冲区,并保持capacity完整。