【发布时间】:2012-09-18 05:43:26
【问题描述】:
当你从一个函数返回一个 stl 向量时:
vector<int> getLargeArray() { ... }
退货会是昂贵的复制操作吗?我记得在某处读到向量赋值很快——我应该要求调用者传递一个引用吗?
void getLargeArray( vector<int>& vec ) { ... }
【问题讨论】:
-
@Gareth 除非你在 C++11 中,从函数返回向量保证要快按标准(除了返回值优化之外,在许多情况下甚至在 C++11 之前的版本中使其变得更快,但是好的,这取决于实现和情况)。