当前位置:  开发笔记 > 编程语言 > 正文

性能字符串作为函数参数

如何解决《性能字符串作为函数参数》经验,为你挑选了1个好方法。

我有函数foo std::string作为参数获取:

void foo(std::string);

我把一个连词字符串:

std::string str_1= "example_str_1";
std::string str_2 = "example_str_2";
foo(str_1+str_2);

这是一个使用连接字符串的好方法std::move吗?

foo(std::move(str_1+str_2));

put concatence与std::move?之间有什么区别吗?



1> ildjarn..:

不是.目的std::move是转换为右值,但str_1+str_2已经是右值,使得move调用多余.

这里有更大的改进空间是签名foo- 为什么它需要一个std::string值?如果仅观察数据,真正的胜利将被改变foovoid foo(std::string const&),或者使用一个类似于C++ 17的std::string_view.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有