gpt4 book ai didi

c++ - 堆栈分配的 vector 如何在 C++ 中展开?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:22 24 4
gpt4 key购买 nike

如果我这样声明一个 vector :

int main() {
vector<string> names;
int something_else_on_the_stack = 0;
names.add("John");
names.add("Annie");
}

您实际上如何能够将元素“添加”到名称 vector 中?如果名称是堆栈分配的,那么“something_else_on_the_stack”不应该紧跟在堆栈上吗?那么如何将名称添加到已分配的 vector 中呢?

最佳答案

在内部,一个 vector<string>很可能由 string* 组成指向实际数据,可能还有两个 size_t指示占用和保留内存的成员。所有其余的都将放在堆上。因此,sizeof(vector<string>)是固定的,栈上的分配不会改变。

关于c++ - 堆栈分配的 vector 如何在 C++ 中展开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12507114/

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