加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

字符串,列表,向量的默认构造函数的C成本

发布时间:2020-12-16 10:00:48 所属栏目:百科 来源:网络整理
导读:在许多情况下,我想传递对const字符串参数的引用,默认为空字符串. void func(std::string const z = std::string()); 我想知道调用默认构造函数与传递对某些静态空字符串的引用有多昂贵? void func(std::string const z = my_staticEmptyStr); 列表和向量怎
在许多情况下,我想传递对const字符串参数的引用,默认为空字符串.

void func(std::string const& z = std::string());

我想知道调用默认构造函数与传递对某些静态空字符串的引用有多昂贵?

void func(std::string const& z = my_staticEmptyStr);

列表和向量怎么样?

更新.不幸的是,我没有看到一个很好的通用方法来获得静态的空-xxx对象,除了在每个需要它的类中都有自己的副本.幸运的是,在我看来,stl类的默认构造函数都不需要内存分配,因此我决定在所有路径上以传统方式执行它,除了经常调用的路径.

解决方法

I am wondering how expensive is calling default constructor vs passing reference to some static empty string?

如果您有一个静态空字符串,最好使用它.构建一个新对象并破坏它将花费一些时间,无论它多么小.

如果构造和销毁默认构造的std :: string根本不需要任何时间,那么使用静态空字符串不会丢失任何内容.

如果默认构造的std :: string在构造函数和析构函数中花费很少的时间,那么你可能会在程序的生命周期中获得相当多的时间,具体取决于调用函数的次数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读