介绍std::move()并写一段实例
时间: 2023-04-07 10:01:03 浏览: 95
std::move() 是 C++11 中的一个函数,用于将一个对象的所有权从一个对象转移到另一个对象,而不进行任何复制操作。它实际上是将一个左值强制转换为右值引用,从而可以调用移动构造函数或移动赋值运算符。
下面是一个示例代码,演示了如何使用 std::move():
```
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v1 = {1, 2, 3, 4, 5};
std::vector<int> v2 = std::move(v1);
std::cout << "v1 size: " << v1.size() << std::endl; // 输出 0
std::cout << "v2 size: " << v2.size() << std::endl; // 输出 5
return 0;
}
```
在这个例子中,我们创建了一个包含 5 个整数的 vector 对象 v1,并将其移动到 v2 中。由于移动操作不涉及任何复制,因此 v1 的大小变为 0,而 v2 的大小仍然为 5。
注意,使用 std::move() 只是将对象的所有权转移给了另一个对象,原对象的值并没有改变。因此,在移动后,原对象的值可能会变得不可预测。
阅读全文