给定一个字符串变量设置为某个值:
string s = "Hello";
以下方法之间是否有任何区别(性能,陷阱)以清除内容?:
s = ""
s = std::string()
s.clear()
我从这个答案中得到了关于清除变量的问题的示例代码/sf/answers/813231681/
有一些明显的差异.
clear设置字符串为0的长度,但并没有改变其容量.
s=""或者s = std::string()创建一个全新的(空)字符串,将其值分配给现有字符串,并抛弃现有字符串的内容.特别是如果你使用的实现std::string不包括短字符串优化,这可能比它慢得多clear.为了增加对伤害的侮辱,这也意味着如果你向字符串添加更多数据,它将最终从一个微小的缓冲区重新分配缓冲区,它可能需要在字符串增长时重新分配.
底线:clear通常会更快,更不用说明确表达你的真实意图了.
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |