对于保证的单个字符,使用' char '还是' string '更好

For a guaranteed single character, is it better to use `char` or `string`?

本文关键字:char 还是 更好 string 使用 于保证 单个 字符      更新时间:2023-10-16

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

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

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

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

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

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

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