c++ - C++ 中的动态数组与 Java 中的 ArrayList

标签 c++ dynamic-arrays

我是 C++ 新手。我正在解决类里面的一个问题。我们必须使用动态数组从文件中读取单词。

这是我的简单问题。

  1. 动态数组是否意味着使用指针?这意味着我们指向我们制作的新数组。
  2. 在Java中,ArrayList可以被创建并且大小可以动态改变。但对于我来说,使用动态数组是否意味着将数组的大小设置为一个很大的数字,然后动态分配该数组?
  3. 有没有办法从动态数组中删除多余的索引?那么删除最后的数组是我在 C++ 中唯一的选择吗?

谢谢,只能使用指针和动态数组。谢谢。

最佳答案

Java ArrayList 只能与 C++ 相媲美 Vector 。普通的动态数组在运行时不会更改其大小,因此如果您在 C++ 中声明动态 int 数组:

int *arr = new int[10];

该数组的大小将保持为 10。

但是,如果您使用 vector :

std::vector<int> arr(10);

然后,当该 vector 填充超过 10 个元素时, vector 对象会自动为自己分配更多内存。

因此,为了回答您的问题,动态数组意味着使用指针来跟踪放置堆分配数组的内存位置。但如果您使用 vector ,则会在内部为您处理

关于c++ - C++ 中的动态数组与 Java 中的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21269313/

相关文章:

c++ - 无法将 unordered_map<char,char> 转换为 unordered_map<char, string>

c++ - 如何在 C++ 中使用字符串文字初始化动态字符数组?

c++ - 从函数返回动态数组,并分配给合适的变量

c++ - 我有一个服务器在套接字上监听,有什么好方法可以通过多个线程来服务 CPU 绑定(bind)请求?

c++ - std::string 不将数据存储在连续内存位置的好处(C++ 11 之前)

arrays - 用 TArray<XXX> 替换 XXX 数组是否安全

c++ - 如何使用非类型模板参数传入指向数组的指针?

javascript - 我可以在javascript中将整个数组插入到其他数组位置吗?

c++ - 有没有办法正确比较 1 个浮点值是否大于/小于另一个?

c++ - 何时调用 QApplication 析构函数