我如何通过引用将 c++ 字符串分配给另一个字符串
How could I assign a c++ string to another by its reference
我有两个 c++ 字符串std::string dir_1("./dir1"); std::string dir_2("./dir2");
我需要根据某些条件将它们分配给另一个字符串:if (...) str = dir_1; else str = dir_2;
.
但是,此操作将复制dir_1
的内容并dir_2
这会带来一些开销。如何减少此开销?我是否可能只通过他们的引用来实现赋值?
将str
作为引用并使用三元运算符对其进行初始化:
const std::string& str = condition ? dir_1 : dir_2;
这将不需要和复制或移动原始字符串。
如果条件更复杂,可以使用 IIFE(立即调用的函数表达式(:
const std::string& str = []() -> auto&
{
if(condition) return dir_1;
else return dir_2;
}();
或者只是将初始化逻辑重构为不同的函数。
相关文章:
- 我如何通过引用将 c++ 字符串分配给另一个字符串
- 无法在 c++ 中将字符串分配给字符串数据类型
- 将字符串* 分配给字符* c++
- 如何为C++字符串分配空指针参数?
- 为什么在构造函数中将字符串分配给指针是安全的?
- 如何将wchar_t字符串分配给用户定义类的 CString 成员
- 字符串分配
- 如何将字符串分配给向量(均在堆上)
- 确实为其写入的字符串分配内存
- 简单的字符串分配导致分割故障
- 通过新行不使用字符串流将C 字符串分配
- 将字符串分配到动态数组位置时出错
- 在 c++ 中为字符串分配其分配的大小值是否正确
- 从被空间分开的字符串分配给变量?C [QT]
- 将字符串分配给固定长度的字符数组
- 将一组字符串分配给向量c++的内容
- 如何为字符串分配内存
- C++中的字符串分配:为什么这样做
- 视觉 建议在C++中执行字符串分配什么?
- 字符 *str;str= "HELLO" ;如何在不为字符串分配任何内存的情况下工作?