C++11 C++;返回两个大的std::vector

C++11 C++;返回两个大的std::vector,c++11,return-value,C++11,Return Value,我有一个函数,需要返回一对std向量(不同维度)。我还可以返回一对或元组。我要避免的是复制整个向量只是为了返回它 是否需要类似以下代码的内容: return make_pair(vec1, vec2_diffDim); 复制向量或它将使用引用?假设vec1和vec2\u diffDim是函数的局部变量,您应该使用make\u pair(std::move(vec1),std::move(vec2\u diffDim))make_pair接受类型为T1和T2的通用引用。但是,由于只有右值可以绑定

我有一个函数,需要返回一对std向量(不同维度)。我还可以返回一对或元组。我要避免的是复制整个向量只是为了返回它

是否需要类似以下代码的内容:

return make_pair(vec1, vec2_diffDim);

复制向量或它将使用引用?

假设
vec1
vec2\u diffDim
是函数的局部变量,您应该使用
make\u pair(std::move(vec1),std::move(vec2\u diffDim))
make_pair
接受类型为
T1
T2
的通用引用。但是,由于只有右值可以绑定到右值引用重载,
make\u pair(vec1,vec2\u diffDim)
将绑定到生成两个参数副本的版本。返回的
对的副本可以省略。因此,您可以保证它至少会被移动。

我建议探索
返回make_pair(std::move(vec1)、std::move(vec2_diffDim))。我不知道它是否适合您的情况,但您可以通过引用将向量传递到函数中,而不是返回它们。