你说的这个多次加法的情况,本来就是效率不高的。它会不断产生临时变量。
x1+x2是一个
(x1+x2)+x3又是一个
你如果在意这个效率,可以用absl::StrCat()
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 标 题: Re: 居然不能做std::string + std::string_view的操作
: 发信站: 水木社区 (Mon May 31 02:28:45 2021), 站内
:
: std::string a = x1 + x2 + x3 + x4
:
: 原来都是const std::string&,只有x1+x2的时候return一个右值
:
: 现在是
: std::string a = std::string(x1) + std::string(x2) + std::string(x3) + std::string(x4)
: 一下4个右值
:
: 翻了一下stackoverflow,说要么自己重载一个,要么改用
: std::string a
: a.append(x1).append(x2)....
:
:
:
:
: 【 在 here080 的大作中提到: 】
: : 另外,就算你比较懒,直接写:
: : a + string(b)
: : 这里string(b)产生的string在传给operator+时是右值,结果会移动而不会再次复制。
: : ...................
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 115.193.190.*]
--
FROM 76.126.252.*