【发布时间】:2015-03-29 21:55:31
【问题描述】:
有没有办法创建一个包含 N 个元素的向量而不调用复制构造函数,而是调用元素的默认构造函数?我不想要元素的复制构造函数,因为应该防止复制。
这里看起来可以,选项 3:
http://en.cppreference.com/w/cpp/container/vector/vector
3) 使用 count 默认插入的实例构造容器 T. 不制作副本。
但在这里看起来你不能:
http://www.cplusplus.com/reference/vector/vector/vector/
空容器构造函数(默认构造函数)构造一个没有元素的空容器。
fill 构造函数构造一个包含 n 个元素的容器。每个元素都是 val 的副本(如果提供)。
范围构造函数构造一个包含与范围 [first,last) 一样多的元素的容器,每个元素都从其 该范围内的对应元素,顺序相同。
复制构造函数(并使用分配器进行复制)构造一个容器,其中包含 x 中每个元素的副本,顺序相同。
移动构造函数(并使用分配器移动)构造一个获取 x 元素的容器。如果指定了 alloc 并且 与 x 的分配器不同,元素被移动。否则,不 元素被构造(它们的所有权直接转移)。 X 处于未指定但有效的状态。
initializer list constructor 构造一个容器,其中包含 il 中每个元素的副本,顺序相同。
【问题讨论】: