当我想要一个函数返回一个容器时:
vector<T> func(){
vector<T> result;
...
return result;
}
可按以下方式使用:
vector<T> result = func();
为了避免复制我的容器的开销,我经常编写函数,以便它只返回一个容器的非常量实例。
void func(vector<T>& result){
result.clear();
...
result;
}
可按以下方式使用:
vector<T> result;
func(result);
我的努力是否毫无意义,因为我可以确定编译器总是使用返回值优化?