gpt4 book ai didi

c++ - 更改数组大小 C++

转载 作者:行者123 更新时间:2023-11-30 03:34:14 25 4
gpt4 key购买 nike

我创建了一个数组指针作为全局变量,如下所示:

T *bag;
bag = new T[size];

我有一个方法可以将东西插入到数组中;但是,如果它检测到它会溢出数组,我需要调整数组的大小(没有 vector )。我一直在阅读有关堆栈溢出的这个问题,但答案似乎并不适用于我,因为我需要将旧数组中的数据复制到新数组中。此外,如果我在方法内创建一个更大的新数组,然后将数据复制到新数组,一旦方法结束,该数组就会消失,但我需要它再次成为一个全局变量,所以我的所有方法可以看到它...我应该如何进行?谢谢

最佳答案

要调整数组大小,您必须分配一个新数组并将旧元素复制到新数组,然后删除旧数组。

T * p_bag;
p_bag = new T[old_size];
//...
T * p_expanded_bag = new T[new_size];
for (unsigned int i = 0; i < old_size; ++i)
{
p_expanded_bag[i] = p_bag[i];
}
delete[] p_bag;
p_bag = p_expanded_bag;

您可以使用 std::copy 而不是 for 循环。

关于c++ - 更改数组大小 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238712/

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