小编典典

什么是 std::move(),什么时候应该使用它?

all

  1. 它是什么?
  2. 它有什么作用?
  3. 什么时候应该使用它?

好的链接表示赞赏。


阅读 260

收藏
2022-03-01

共1个答案

小编典典

关于 C++11 R
值引用和移动构造函数的维基百科页面

  1. 在 C++11 中,除了复制构造函数之外,对象还可以具有移动构造函数。
    (除了复制赋值运算符之外,它们还有移动赋值运算符。)

  2. Type &&如果对象的类型为“右值引用”( ),则使用移动构造函数而不是复制构造函数。

  3. std::move()是一个产生对对象的右值引用的强制转换,以便能够从它移动。

这是一种避免复制的新 C
方法。例如,使用移动构造函数,astd::vector可以将其指向数据的内部指针复制到新对象,使移动的对象处于已移动的状态,因此不会复制所有数据。这将是
C
有效的。

尝试在谷歌上搜索移动语义、右值、完美转发。

2022-03-01