str.clear() 和 str = "" 的区别
Difference between str.clear() and str = ""
我有一个 C++ std::string str
,我已将其设置为某个字符串,现在想重置它以便再次使用。调用 str.clear()
与调用 str = ""
之间有区别吗?
编辑。澄清一下:我通过向其附加一个 char 数组缓冲区来重用 str:str.append(buf)
没有有效差异。根据实现的不同,使用 clear()
可能比将 char 指针分配给零更快。但是,即使情况并非如此,也更喜欢更清楚地表达您的意图的方法。如果要清除字符串,请使用 clear()
。如果要分配空字符串,请使用 = ""
.
虽然我会注意到,你说,"so I can use it again."再用它做什么?如果你只是将它分配给其他东西,则无需事先清除它。
我有一个 C++ std::string str
,我已将其设置为某个字符串,现在想重置它以便再次使用。调用 str.clear()
与调用 str = ""
之间有区别吗?
编辑。澄清一下:我通过向其附加一个 char 数组缓冲区来重用 str:str.append(buf)
没有有效差异。根据实现的不同,使用 clear()
可能比将 char 指针分配给零更快。但是,即使情况并非如此,也更喜欢更清楚地表达您的意图的方法。如果要清除字符串,请使用 clear()
。如果要分配空字符串,请使用 = ""
.
虽然我会注意到,你说,"so I can use it again."再用它做什么?如果你只是将它分配给其他东西,则无需事先清除它。