【发布时间】:2016-04-20 08:23:49
【问题描述】:
我整天都在阅读有关传递参数的最佳有效方式的信息,但我很困惑。我想传递这样的向量:
Foo f({1,2,3});
我只是想用传递的向量初始化我的 _member 变量。现在的问题是我的构造函数应该怎么看:
// pass by value
Foo (vector<int> vec) : _member{vec} {}
// const reference
Foo (const vector<int>& vec) : _member{vec} {}
// rvalue reference
Foo (vector<int>&& vec) : _member{std::move(vec)} {}
【问题讨论】:
-
你的传递值也应该有一个
std::move -
将新向量初始化为vector
并传递 -
请不要破坏您的帖子。如果您不希望帖子与您再关联,read this
标签: c++ c++11 vector constructor