对于保证单个字符,使用`char`或`string`更好吗?

时间:2015-05-22 03:41:44

标签: c++ string char

我有一个变量,保证是单个字符(来自std::string的子字符串)。

我强烈怀疑使用char效率更高,即

char c = name.c_str()[offset];

而不是更复杂(和昂贵)的

std::string c = name.substr(offset, 1);

我不打算对结果字符进行任何密集操作(只有一个switch语句)。

1 个答案:

答案 0 :(得分:1)

在这种情况下使用char可能更好,假设您想要存储并经常处理它,否则您可以直接访问string个人char使用operator[]。需要注意的一点是std::string实现了所谓的short string optimization,它应该非常快。但无论如何,你应该分析你的代码,除非你需要一个std::string(例如在其他一些函数中传递后者),你应该使用char