【发布时间】:2011-05-24 05:14:43
【问题描述】:
我知道引用的原则是避免复制大型结构,但是如果您编写的函数本身创建了一个大型结构怎么办?与将目标对象作为引用传递并从函数中填充它相比,在本地创建变量然后返回它是否效率较低(或者您更有可能耗尽内存)?
我似乎不能很好地表达,所以一个具体的例子:假设一个函数接受一个字符串,并返回字符串中每一行的向量。该功能是否有物质优势:
void getLines(std::string in, std::vector<std::string>& out);
结束:
std::vector<std::string> getLines(std::string in);
感谢您的帮助, 悦
【问题讨论】:
-
我认为您在第一个代码 sn-p 中缺少
&。 (out应该是参考...) -
out 是一个参考......很抱歉,它丢失了,其他人编辑了它。
标签: c++ memory-management performance