【问题标题】:Difference between str.clear() and str = ""str.clear() 和 str = "" 之间的区别
【发布时间】:2016-10-07 22:31:11
【问题描述】:

我有一个 C++ std::string str,我已将它设置为某个字符串,现在想要重置它以便再次使用它。调用str.clear()str = "" 有区别吗?

编辑。澄清一下:我通过附加一个 char 数组缓冲区来重用 str:str.append(buf)

【问题讨论】:

  • 它们是达到相同结果的两种方式。一种是使用类方法,另一种是使用重载运算符=。选择一个清楚地表达你的意图。

标签: c++ string stdstring c++-standard-library


【解决方案1】:

没有有效的区别。根据实现,使用clear() 可能比将char 指针分配为零更快。但是,即使不是这种情况,也更喜欢更清楚地表达您的意图的方法。如果要清除字符串,请使用clear()。如果要分配空字符串,请使用= ""

虽然我会注意,但你说,“所以我可以再次使用它。”再用它做什么?如果你只是分配给别的东西,没有必要事先清除它。

【讨论】:

  • 存在“语义差异”但没有“有效差异”(请原谅吹毛求疵)
  • 挑剔总是合适的。编辑。
  • 更新问题:重用。
  • 最后一段说得好。仅仅因为 C++ 为您提供了一些功能,并不意味着您必须使用所有这些功能。
猜你喜欢
  • 2019-04-27
  • 2019-10-17
  • 2016-04-25
  • 2016-08-05
  • 1970-01-01
  • 2021-12-08
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多