矢量中的所有对象是否都有复制构造函数?

时间:2016-11-22 07:26:17

标签: c++ c++11

我在某处读到了已经在向量中的对象,在重新分配向量时会被复制。

这是为什么?难道他们不应该被感动吗?另外,这是否意味着期望为存储在向量中的对象编写复制构造函数?

1 个答案:

答案 0 :(得分:3)

来自C++ reference

在C ++ 11出现之前,向量的元素必须满足CopyAssignableCopyConstructible的要求。

从C ++ 11到C ++ 17,对元素施加的要求取决于对容器执行的实际操作。通常,要求元素类型是完整类型并满足Erasable的要求,但许多成员函数强加了更严格的要求。

从C ++ 17开始,对元素施加的要求取决于对容器执行的实际操作。通常,要求元素类型满足Erasable的要求,但许多成员函数强加了更严格的要求。如果分配器满足分配器完整性要求,则可以使用不完整的元素类型实例化此容器(但不是其成员)。