让我说我有功能
std::Vector<Point> calculate() {
std::Vector<Point> points; //do stuff with points
return points;
}
和
void calculate(std::Vector<Point>& points) {
//do stuff with points
}
所以我的问题特定于在堆栈上初始化的对象,并且是stl对象。性能有什么不同,这种流行的方法是什么
问候
答案 0 :(得分:9)
将值作为参考参数具有以下属性:
返回值具有以下属性:
答案 1 :(得分:8)
因为复制省略,性能很可能会相同。
这两种方法表达的是不同的
std::vector<Point> calculate()
返回一个向量(可能基于某些参数)。
void calculate(std::vector<Point>& points)
修改现有的矢量(同样可能基于参数)。
答案 2 :(得分:1)
我的拙见:返回值产生的问题多于解决方案...看起来更简单,在调用段中更简洁,但避免使用右值引用...