std :: string :: clear()vs使用另一个字符串

时间:2014-04-29 19:08:07

标签: c++ string

我需要一个临时字符串来追加和修改预先存在的字符串,以便我可以使用DrawText。该临时字符串需要在函数内部进行更改,因此我有两个选项:

- 使用std::string::clear()

- 初始化另一个临时字符串。

我可以使用和理解这两种方法,但我想知道哪一种更好?

编辑:对于有问题的功能,运行时间很短是必不可少的

2 个答案:

答案 0 :(得分:6)

无论哪一个更清楚地反映代码的意图更好。如果你没有停下来思考哪个更好"你将使用的那个更好。

答案 1 :(得分:3)

如果(并且仅当)分析在您的函数中显示性能问题,那么您可以通过重用现有字符串来节省很少的时间。

已分配现有字符串的内存。除非字符串超出内存分配的大小,否则不需要进行新的内存分配。

另一方面,如果你创建并销毁很多字符串,分配时间就会开始累加。

我有一些代码,其中std :: string分配和复制在配置文件中占主导地位。要在将来的某个时候修复它,我们将不得不实现字符串池,自定义分配器并使用string_ref而不是string。

是的,这可能是一个问题。但在尝试解决之前要先找出答案。