【发布时间】:2020-03-01 09:26:13
【问题描述】:
在参数化构造函数(带有初始化列表)中使用 std::move() 代替常规成员初始化,即赋值有什么好处?
例如,
#include <iostream>
#include <vector>
template <typename V>
class myVec{
private:
std::vector< std::vector<V> > vec;
public:
myVec1(const std::vector< std::vector<V> > &myArr):vec(myArr) {};
myVec2(const std::vector< std::vector<V> > &myArr):vec(std::move(myArr)) {};
};
使用 myVec1 而不是另一个可以获得多少优势(内存、性能等)?
【问题讨论】:
-
当参数按值(或右值引用)传递时,您通常会看到这一点。
标签: c++ oop constructor initialization move-semantics