【问题标题】:Reset string while keeping capacity在保持容量的同时重置字符串
【发布时间】:2014-01-21 13:42:41
【问题描述】:

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

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

如果我执行类似的操作,默认情况下可能会发生这种情况

str.clear()
str.reserve(256)

在每次循环迭代中,至少在使用 Visual Studio 时根据这篇文章的答案:Specific behaviour of std::string on visual studio?

但依靠“可能”似乎有点冒险。

【问题讨论】:

    标签: c++ string


    【解决方案1】:

    根据http://en.cppreference.com/w/cpp/string/basic_string/clear clear() 不会释放内部缓冲区并保持capacity 不变。

    【讨论】:

    • 哈,原来如此。猜猜我什至不必调用 str.reserve(256) ,无论如何它都会被保留。在发布到这里之前,我应该更好地查看文档...
    猜你喜欢
    • 2021-01-19
    • 1970-01-01
    • 2018-12-21
    • 2020-07-12
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多