关于动态数组

来源:互联网 发布:58同城淘宝客服 编辑:程序博客网 时间:2024/05/17 22:12
2008-10-20 15:24
1. 什么是动态数组?
关于动态数组的理解,一般有两种:一是编译时大小不确定的数组,而是在使用中可以变长的数组。我个人觉得第一种更准确。
2. 实现(c++中)
一是:堆上实现的变长数组 ,如 int *pArray = new int[size];
          动态多维数组可以使用下面思维来实现:比如要实现动态二维数组,则可以先定义一个一维指针数组,每个指针再指向一个一维数组,如下:
int line0[]={1,0,0,0};
int line1[]={0,1,0,0};
int line2[]={0,0,1,0};
int line3[]={0,0,0,1};

int *p[4]; //定义整数指针数组p
p[0]=line0;
p[1]=line1;
p[2]=line2;
p[3]=line3;

二是对变长数组,则可以使用STL现成的vector等容器;

三是可以使用malloc和rallocl来实习变长数组,但是效率不高,因为ralloc要先分配一块新内存, 再把旧内存的内容拷贝到新内存去, 然后在free掉旧内存
原创粉丝点击