矢量push_back移动实现

时间:2015-10-19 02:26:53

标签: c++ vector data-structures move

在我的教科书中,矢量push_back移动实现的实现是:

password

我对std :: move的理解是它基本上静态将项目转换为右值引用。那么为什么在最后一行他们必须使用std :: move(x),当x作为右值引用传入时?

1 个答案:

答案 0 :(得分:2)

x是左值参考,但您必须遵循的经验法则是:如果它有名称,则它是左值 。因此,您必须应用std::move将其类型转换为右值。如果您遗漏了std::move,则会复制x而不是将其移至目的地。有关详细信息,请参阅Rvalue References Explained