我想实现一个可以随着新值的添加而递增的数组。就像在 Java 中一样。我不知道该怎么做。谁能给我一个方法?
这是出于学习目的,因此我不能使用 std::vector
。
最佳答案
这里是一个起点:您只需要三个变量,nelems
、capacity
和一个指向实际数组的指针。因此,您的类(class)将以
class dyn_array
{
T *data;
size_t nelems, capacity;
};
其中 T
是您要存储的数据类型;为了获得额外的荣誉,请将其设为模板类。现在实现教科书或 Wikipedia page on dynamic arrays 上讨论的算法.
请注意,new
/delete
分配机制不支持像 C 的 realloc
那样增长数组,因此您实际上是在移动data
的内容随着容量的增加而变化。
关于c++ - 在 C++ 中实现增量数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895695/