首页 > 解决方案 > 如果你在向量副本中放一个常数怎么办?或移动?

问题描述

当我将类放入向量中并定义移动运算符时,我可以看到在重新分配向量时移动了值。

如果是这样,如果您添加一个整数而不是一个类并重新分配它,它会移动吗?

在此处输入图像描述

标签: c++vector

解决方案


整数等基本类型没有任何构造函数。因此,它们没有移动构造函数。因此,它们没有被“移动”。该算法仍可用于std::move将赋值的操作数转换为 xvalue,但这仍然是一个复制赋值。

从概念上讲,移动是一个浅拷贝,增加了类不变量的强制执行。Integer 不是引用类型,所以没有浅拷贝和深拷贝之分。它也不是一个类,也没有不变量。


推荐阅读