关于动态数组
来源:互联网 发布: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掉旧内存
关于动态数组的理解,一般有两种:一是编译时大小不确定的数组,而是在使用中可以变长的数组。我个人觉得第一种更准确。
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掉旧内存
- 关于动态数组
- 关于动态数组
- C++:关于动态数组
- 关于memset初始化动态数组:
- 关于动态数组的问题
- 关于如何动态创建数组
- 关于动态数组的愚见
- 关于动态数组与集合
- 关于二维数组动态申请
- 关于结构体数组动态内存分配
- 关于动态数组的存储方式
- 一个关于动态多维数组的问题
- 关于动态new二维数组的问题
- 关于动态数组的泛型实现
- 关于vector二维动态数组初始化
- 关于动态链表和数组的效率
- 菜鸟啊,关于动态数组的释放问题
- Delphi中关于动态数组的引用操作
- C++/C运算符的优先级
- c++类型转化
- 【转载】C++文件操作(二)
- 软件测试-测试用例的经典例子
- 【转载】C++文件操作(一)
- 关于动态数组
- CCNA实验十六 快速生成树协议(RSTP)
- 现代软件工程系列 学生读后感 梦断代码
- Vim四种编码详解
- 如何自定义Word右键菜单
- ubuntu下安装lotus symphony
- 如何做好测试
- 另外一种风格的VB6程序设计
- LDD 3 中的struct原型