c++ - 在 C++ 中实现增量数组

标签 c++ arrays dynamic-sizing

我想实现一个可以随着新值的添加而递增的数组。就像在 Java 中一样。我不知道该怎么做。谁能给我一个方法?

这是出于学习目的,因此我不能使用 std::vector

最佳答案

这里是一个起点:您只需要三个变量,nelemscapacity 和一个指向实际数组的指针。因此,您的类(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/

相关文章:

ruby - 使用 JSON 将哈希数组写入文件?

c++ - 是否可以在编译时获取时间(当天)和日期?

c++ - 在 Mac 上使用 PJSIP 进行回声消除

c++ - 传递数组时从 'int' 到 'int*' [-fpermissive] 的无效转换

java - 设置 JPanel 大小以填充父级,边距很小

ios - 使用动态高度更改 UITableViewCell 中的 UILabel 文本长度不会正确调整其大小

html - CSS float 和高度问题

c++ - 具有相同名称的多个类导致 vtable 问题

c++ - 具有指向自身的指针的类层次结构

javascript - 使用Ramda(或其他功能库)使用indexOf过滤大数组对象?