C++中动态数组各功能实现
时间: 2024-08-14 11:09:39 浏览: 60
C++实现动态数组功能
5星 · 资源好评率100%
在C++中,动态数组是一种允许你在程序运行期间动态分配内存的数组,它的功能主要包括:
1. 动态创建:你可以使用`new[]`运算符在堆上为数组分配空间,例如`int* arr = new int[size];`。这会为指定大小的整数分配内存。
2. 容量调整:动态数组允许你改变其大小。如果你需要增加元素,可以使用`realloc`函数,但在C++中,通常不推荐这样做,因为它涉及到底层操作,且可能导致数据丢失或错误。更常见的是先删除旧数组,然后创建一个新的更大的数组。
```cpp
delete[] arr; // 删除原数组
arr = new int[newSize]; // 创建新的更大数组
```
3. 访问和修改元素:通过指针遍历数组,就像静态数组一样,`arr[i]`可以直接访问第i个元素。
4. 销毁:当不再需要动态数组时,记得使用`delete[]`释放所占用的内存,以避免内存泄漏,例如`delete[] arr;`。
5. 插入和删除:由于动态数组的连续存储特性,插入或删除操作可能会导致内存碎片。在C++中,标准库提供了一些容器如`std::vector`,它们内部管理内存,更适合频繁的插入和删除操作。
```cpp
// 错误示例,不应直接删除数组中间元素
delete &arr; // 不推荐手动操作
// 更推荐使用vector
std::vector<int> vec;
// 然后使用push_back等方法添加元素,pop_back删除元素
```
阅读全文