c++ 使用函数操作对象并返回怎样做效率更高?

问题遇到的现象和发生背景

c++ 使用函数操作对象并返回怎样做效率更高?

我想一个是在函数外部先构造,然后传引用,在函数内部操作.
一个是在函数内部构造,然后传递对象.
比如vector.

//第一个方法
std::vector<int> a;
f_a(a);
void f_a(std::vector<int> & t){
  a.push_back(1);
}
//第二个方法
std:;vector<int> a2=f_a_2();
std::vector<int> f_a_2(){
std::vector<int> t;
t.push_back(1);
return t;
}

这两个哪一个效率更高呢?

这里涉及vector更细节的话 我可能也有一点模糊疑问
但是这里毫无疑问的是 第一个方法肯定是比较优,这里直接传引用,函数里直接操作的是你定义的vector
关于第二个我有一点疑问是 a2=f_a_2()这个动作 应该调用的是函数的赋值构造函数,这里相关源码我没有细看过,就留个疑问了(拷贝了一份肯定就耗资源)