我在这里读了很多关于如何完全清除字符串的问题(即重置容量,释放内存).我的问题恰恰相反;是否有任何可靠的方法来重置字符串(长度),同时保证其容量保持不变?
示例:在循环中重用临时字符串.
如果我这样做,可能会默认发生这种情况
str.clear() str.reserve(256)
在每次循环迭代中,至少在根据这篇文章的答案使用Visual Studio时:Specific behaviour of std::string on visual studio?
但依赖“可能”似乎有点风险.
解决方法
根据
http://en.cppreference.com/w/cpp/string/basic_string/clear清除()不释放内部缓冲区并保持容量不变.