C++ 实现一个动态数组

前言

因为最近有需要存储数据量未知的数据的需求,用上了std::vector(容器)。虽然 vector 很好用,但也有其自身的局限性,比如不能像普通数组一样在指定位置写入数据。因此决定用new来实现一个动态长度的数组。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;

//这里以创建一个动态长度的 int 数组为例
int main(){
//设定长度
int length = 5;
//初始化
int *miao = new int[length]{0};

//向 miao 中存入数据
for(int i=0;i<length;i++)
miao[i] = (i+1);

//扩张大小
int *p = miao;
miao = new int[length+10]{0};
//转移数据
for(int i = 0; i < length; i++)
miao[i] = p[i];
//释放内存
delete[] p;
}

大概就这样,不过实际运行中还是挺容易遇到一些奇奇怪怪的问题…