Vic*_*mar 7 c++ string const literals
我知道C/C++中的字符串文字具有静态存储持续时间,这意味着它们"永远"存在,即只要程序运行.
因此,如果我有一个非常频繁调用的函数并使用字符串文字,如下所示:
void foo(int val)
{
std::stringstream s;
s << val;
lbl->set_label("Value: " + s.str());
}
Run Code Online (Sandbox Code Playgroud)
set_label函数将a const std::string&作为参数.
我应该使用const std::string这里而不是字符串文字还是没有区别?
我需要尽可能减少运行时内存消耗.
编辑:
我的意思是将字符串文字与const std::string prefix("Value: ");在某种常量头文件中初始化的字符串文字进行比较.
此外,这里的连接返回一个临时的(让我们调用它,Value: 42并将一个对这个临时的const引用传递给函数set_text(),我是否正确?
再次感谢你!
您的程序每次都在相同的文字上运行.没有更有效的存储形式.将构造一个std :: string,在堆上复制,然后每次运行该函数时释放,这将是完全浪费.
| 归档时间: |
|
| 查看次数: |
5081 次 |
| 最近记录: |