C 与Java中的ArrayList中的动态数组
Dynamic Array in C++ vs ArrayList in Java
我是C 的新手。我正在研究课程问题。我们必须使用动态数组来读取文件。
这是我的简单问题。
- 动态数组是否意味着使用指针?这意味着我们指出了我们的新数组。
- 在Java中,可以创建ArrayList,并动态大小更改。但是对我来说,在C 中,是否使用动态数组意味着将数组的大小设置为大数字,然后动态分配该数组?
- 是否可以从动态阵列中砍掉多余的索引?因此,删除末端的数组是我在C 中唯一的选择?
谢谢,只能使用指针和动态阵列。谢谢。
Java ArrayList
仅与C 向量相媲美。一个普通的动态数组不会在运行时更改其大小,因此,如果您在C 中声明动态int
数组:
int *arr = new int[10];
该数组的大小将保持在10。
但是,如果您使用向量:
std::vector<int> arr(10);
然后,当该向量填充超过10个元素时,向量对象会自动为其分配更多的内存。
为了回答您的问题,动态数组意味着使用指针来跟踪已放置堆分配的数组的内存位置。但是,如果您使用向量,则可以为您内部处理
我想动态数组可以参考。看看您必须做什么并决定。是否可以使用固定大小的阵列的场景?我猜想向量将是最好的,因为您可能不提前知道文件有多大。
std::vector<string> words;
也仅对于您的信息,向量类只是存储一个动态分配的数组的指针。每当您需要更多的空间,复制旧数组中的数据并删除数据时,它就会创建一个新的。这一切都发生在幕后。
java arraylist的c 等效于std :: vector。您使用大写的术语"动态数组",就好像它具有特定的含义,而不是应用于概念"数组"的通用形容词"动态"。C 规格Lingo中的"动态数组"是一个局部变量,具有固定大小的固定大小,在初始化/创建时设置了设置,但是每次输入范围(并重新创建阵列)时,它可能会获得不同的大小。由于它是本地范围的,因此对于存储暂时以外的文件读取的内容并不太用。C 还具有堆积的分配数组,它们在创建时具有其大小集(如动态数组),但一直持续直至明确删除,这可能更有用。这些在一般形容词中是"动态的",但在规格意义上不是"动态数组"。
相关文章:
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 输出没有重复元素的动态数组(收缩数组)C++
- 正在插入动态数组
- 如何在动态数组上使用搜索函数
- C++ 动态数组每次添加时将大小增加 1 - 错误
- 静态数组的自由动态数组
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 使用 thread 类在 C++ 中构造线程的动态数组时出错
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- 为什么 c++ 动态数组的大小没有改变?
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 指针的 C++ 动态数组 - 何时需要使用它?
- 删除动态数组时未定义标识符
- 哈希映射使用 nullptr c++ 初始化节点的动态数组
- 如何将字符串和整数读取到两个单独的动态数组中的程序编写?
- 动态数组的 C++ 重载加运算符
- 基于数组的列表 - 动态数组创建时出错