c++ - 如果你在 vector 拷贝中放一个常量会怎样?或移动?

标签 c++ vector

<分区>

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

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

enter image description here

最佳答案

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

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

关于c++ - 如果你在 vector 拷贝中放一个常量会怎样?或移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032120/

相关文章:

C++ 堆栈分配对象,显式析构函数调用

java - Lucene TermFrequenciesVector

c++ - 用VC++函数构建DLL无法访问

c++ - 阻塞模式的原理是什么?

math - 同一平面内具有相同原点的两个 3D 向量之间的符号角

matlab - 如何在一行中将 Matlab 函数的输出分配给变量?

c++ - 如何遍历 vector 大小并分配给新 vector ?

c++ - std::vector 的高效传递

c++ - 类似于大量项目的双端队列,但少量的内存使用量很小?

c++ - 为什么纹理绑定(bind)需要非常量设备指针?