c++ - 我应该返回 std::strings 吗?

标签 c++ string return-value

我正在尝试尽可能使用 std::string 而不是 char*,但我担心我可能会过度降低性能。这是返回字符串的好方法吗(为简洁起见没有错误检查)?

std::string linux_settings_provider::get_home_folder() {
    return std::string(getenv("HOME"));
}

另外,一个相关的问题:当接受字符串作为参数时,我应该将它们作为 const std::string& 还是 const char* 接收?

谢谢。

最佳答案

返回字符串。

我认为更好的抽象是值得的。在您能够测量出有意义的性能差异之前,我认为这是一种只存在于您的想象中的微观优化。

花了很多年才将良好的字符串抽象到 C++ 中。我不相信 Bjarne Stroustroup 以他保守的“只为你使用的东西付费”的格言而闻名,他不会允许一个明显的性能 killer 进入语言。更高的抽象是好的。

关于c++ - 我应该返回 std::strings 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1032243/

相关文章:

C++ - 循环主要重置对象

c - C 中的 Char 数组

python - 如何在不中断循环的情况下返回值?

python - 在输入文件中查找确切的字符串

javascript - 模块返回异步初始化的对象

C 用户仅输入整数,从 scanf 返回值

c++ - 如果存在内存分配错误,请从 mex 文件中正常退出

c++ - 检测 windows jpeg 图标

c++ - KDevelop4 : target build directory doubled after importing CMakeList. 文本文件

c - 查找字符串中字符串分隔符的数量