对于有保证的单个字符,使用 `char` 还是 `string` 更好?
For a guaranteed single character, is it better to use `char` or `string`?
我有一个保证是单个字符的变量(std::string
中的子字符串)。
我强烈怀疑使用 char
更有效,即
char c = name.c_str()[offset];
而不是更复杂(和昂贵)
std::string c = name.substr(offset, 1);
我不会对生成的字符进行任何密集操作(只有一个 switch
语句)。
在这种情况下使用 char
可能更好,假设你想存储它并在以后经常处理它,否则你可以直接访问 string
个人 char
s 使用 operator[]
。需要注意的一件事是 std::string
实现了所谓的 short string optimization,这应该是相当快的。但是无论如何,你应该分析你的代码,除非你需要一个std::string
(例如在其他一些函数中传递),你应该只使用一个char
.
我有一个保证是单个字符的变量(std::string
中的子字符串)。
我强烈怀疑使用 char
更有效,即
char c = name.c_str()[offset];
而不是更复杂(和昂贵)
std::string c = name.substr(offset, 1);
我不会对生成的字符进行任何密集操作(只有一个 switch
语句)。
在这种情况下使用 char
可能更好,假设你想存储它并在以后经常处理它,否则你可以直接访问 string
个人 char
s 使用 operator[]
。需要注意的一件事是 std::string
实现了所谓的 short string optimization,这应该是相当快的。但是无论如何,你应该分析你的代码,除非你需要一个std::string
(例如在其他一些函数中传递),你应该只使用一个char
.