gpt4 book ai didi

C++:对于 "new"一个将持续增长的集合意味着什么?

转载 作者:太空宇宙 更新时间:2023-11-04 14:42:50 25 4
gpt4 key购买 nike

我是 C++ 新手。 "new"一个集合究竟意味着什么?例如:

UnicodeStringList* tmp = new UnicodeStringList;
// where UnicodeStringList is typedef to std::list<UnicodeString>

当你"new"一些东西时,你必须确切地知道你需要它有多大,对吗?所以当我 使用赋值构造函数复制一个对象,计算机如何知道应该在堆上分配多少内存?例如:

*tmp = another_string_list;

another_string_list 正在复制到堆内存中我新的 UnicodeStringList 中,但我最初从未指定堆内存应该有多大。而且编译器不知道 another_string_list 有多大,所以有多少内存进入堆?

我很困惑,希望我已经详细说明了我的问题,以便有人能理解我,但我不确定。

请帮忙

谢谢,

朱利安

最佳答案

当您向其中添加元素时,std::list 的大小不会改变。我将使用 std::vector 因为示例更简单,但适用相同的概念:std::vector 包含指向数组的指针,它根据需要动态调整大小以包含您的元素。指向数组的指针大小不变(它是一个指针的大小),即使它指向的数组发生变化

关于C++:对于 "new"一个将持续增长的集合意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267575/

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