gpt4 book ai didi

c++ - std::vector X(0) 保证不分配吗?

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:10 26 4
gpt4 key购买 nike

理论上,给定:

std::vector X(0);

那么X会从栈中为自己分配内存,但是保证不分配堆内存吗?

换句话说,由于实现通常会为 vector 使用一个指针,这个指针是否总是初始为 0?

注意:这与 Initial capacity of vector in C++ 不同因为当没有参数传递给构造函数时,它会询问容量,而不是容量为 0 时堆分配的保证;在这种情况下,容量可以不为零这一事实说明了差异。

最佳答案

该构造函数调用 explicit vector( size_type count ) 执行以下操作:

Constructs the container with count default-inserted instances of T. No copies are made.

您得到的唯一保证是 vector 将为空,它的 size() 将为 0。允许实现分配他们想要的任何东西用于簿记或初始化时的任何东西。

因此,如果您的问题是您是否可以指望 X 占用 0 个字节的可用存储空间,那么答案是

关于c++ - std::vector X(0) 保证不分配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44002609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com