随时随地获取额外内存,无需指针
Getting additional memory on the go without pointers
在C++中,是否可以在程序运行时创建新数组?具体来说,假设我在一个类中有一个数据成员,变量的名称是 array,它是一个大小为 10 的数组。假设在运行时我想要一个更大的数组,我可以在不使用指针的情况下做到这一点吗?我可以有如下方法吗?
int[] expandCapacity(int currentCapacity) {
int [] arr = new int[currentCapacity*2];
currentCapacity*=2;
return arr;
}
为什么我不能使用此方法扩展当前阵列的容量,方法是说:
currentCapacity = 10;
array = expandCapacity (currentCapacity);
如果这有效,则无需使用指针。我觉得我在这里错过了一些关键的东西。如果您能指出我缺少什么,我将不胜感激。
不,这是不可能的。
然而,自己这样做纯粹是精神错乱。使用std::vector<int>
,让您的编译器实现者为您完成所有操作。
例如,
你应该像向量一样使用 STL 容器。
如果这有效,则无需使用指针。我觉得我是 这里缺少一些关键的东西。如果您能指出,我将不胜感激 我错过了什么。
指针的用途远不止于此。我建议找一个好的 c++ 教程(查看此处的 c++ 常见问题解答以获取更多信息)。