我创建了一个数组指针作为全局变量,如下所示:
T *bag;
bag = new T[size];
我有一种方法可以将东西插入数组;但是,如果它检测到它将溢出数组,我需要调整数组的大小(没有向量)。我一直在阅读有关堆栈溢出的所有问题,但答案似乎不适用于我,因为我需要将旧数组中的数据复制到新数组中。此外,如果我在方法内创建一个更大的新数组,然后将数据复制到新数组,一旦方法结束,数组将消失,但我需要它再次成为全局变量,所以我的所有方法可以看到它…我应该如何进行?谢谢
原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议
thing
你需要可以做以下事情当请求的大小大于当前数组大小时自动处理大小调整。
调整大小时,他们可以将原始内容复制到新空间,然后立即删除旧分配。
有一种非全局变量方式机制,它们可以跟踪数组指针和当前大小。
thing
与std::vector
非常相似。如果不允许使用,您可能需要自行 管理一个动态分配的资源,例如std::vector
。您可以在该答案链接中引用实现。如果最终需要将其包装在一个类中,请确保遵循三大规则(C++11 中的 5 条规则)