理论上,给出:
std::vector X(0);
然后X将从堆栈中为自己分配内存,但是保证不分配堆内存吗?
换句话说,由于实现通常会使用向量的指针,这个指针总是最初为0?
注意:这与Initial capacity of vector in C++不同,因为在没有参数传递给构造函数时会询问容量,而不是在容量为0时对堆分配的保证;在这种情况下,容量可以是非零的事实说明了差异。
答案 0 :(得分:2)
该构造函数调用explicit vector( size_type count )
执行:
使用计数默认插入的T实例构造容器。 没有制作副本。
唯一的保证是向量将为空,其size()
将为0.允许实现分配他们想要的任何记录或初始化的任何内容。
因此,如果您的问题是,如果您可以依靠X
占用0个字节的免费商店空间,则答案为 否 。