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