<分区>
当我将类放在 vector 中并定义移动运算符时,我可以看到在重新分配 vector 时移动了值。
如果是这样,如果您添加一个整数而不是一个类并重新分配它,它会移动吗?
最佳答案
整数等基本类型没有任何构造函数。因此,他们没有移动构造函数。因此,它们不会被“移动”。该算法可能仍然使用 std::move
将赋值的操作数转换为一个 xvalue,但这仍然是一个复制赋值。
从概念上讲,一个移动是一个浅拷贝,增加了类不变量的执行。 Integer 不是引用类型,所以没有浅拷贝和深拷贝的区别。它也不是一个类,没有不变量。
关于c++ - 如果你在 vector 拷贝中放一个常量会怎样?或移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032120/