多维动态数组定义及应用
2015-02-05 11:36
155 查看
本文主要介绍:利用CArray实现多维动态数组的定义、赋值和读取。
说明:在定义数组和开辟缓存时,如果数组或缓存大小,则可以直接定义或用new开辟,当不知道大小时,此时要借助于栈、队列等,动态的添加或删除。一维动态数组或缓存开辟较简单,所以这里主要介绍二维动态数组的定义及应用。
一、定义CArray导出类
将定义的导出类放到.h文件中:
运行结果:
说明:在定义数组和开辟缓存时,如果数组或缓存大小,则可以直接定义或用new开辟,当不知道大小时,此时要借助于栈、队列等,动态的添加或删除。一维动态数组或缓存开辟较简单,所以这里主要介绍二维动态数组的定义及应用。
一、定义CArray导出类
将定义的导出类放到.h文件中:
template <class TYPE, class ARG_TYPE> class UltraCArray_T : public CArray <TYPE, ARG_TYPE> { public: UltraCArray_T(); UltraCArray_T(const UltraCArray_T &rhs); UltraCArray_T &operator =(const UltraCArray_T &rhs); }; template <class TYPE, class ARG_TYPE> inline UltraCArray_T<TYPE, ARG_TYPE> & UltraCArray_T<TYPE, ARG_TYPE>::operator =(const UltraCArray_T &rhs) { if(this != &rhs) { Copy(rhs); } return *this; } template <class TYPE, class ARG_TYPE> inline UltraCArray_T<TYPE, ARG_TYPE>::UltraCArray_T() { } template <class TYPE, class ARG_TYPE> inline UltraCArray_T<TYPE, ARG_TYPE>::UltraCArray_T(const UltraCArray_T &rhs) { *this = rhs; }二、导出类应用
void main() { //数组定义 typedef UltraCArray_T<int , int&>DA1;//一维动态数组 typedef UltraCArray_T<DA1 , DA1&>DA2;//二维动态数组 DA1 aa1; DA2 aa2; //二维数组赋值 aa1.RemoveAll(); for(int i=0;i<10;i++) //一维数组赋值 aa1.Add(i); aa2.Add(aa1); //添加到二维数组 aa1.RemoveAll(); for(int i=10;i<20;i++) //一维数组赋值 aa1.Add(i); aa2.Add(aa1); //添加到二维数组 //二维数组读取 int Size = aa2.GetSize(); for(int i=0;i<Size;i++) { aa1.RemoveAll(); aa1 = aa2.GetAt(i); for(int j=0; j<aa1.GetSize();j++) cout<<aa1.GetAt(j)<<" "; cout<<"\n";//换行 } _getch(); }
运行结果:
相关文章推荐
- Delphi多维动态数组重定义长度
- VB.NET 数组的定义 动态使用 多维数组
- VB.NET 数组的定义 动态使用 多维数组
- C语言中多维数组的常见动态分配方式及其在函数参数传递时的应用
- VB.NET 数组的定义 动态使用 多维数组
- VB.NET 数组的定义 动态使用 多维数组
- VB.NET 数组的定义 动态使用 多维数组
- 多维动态数组分配的方法
- 一个动态多维数组的实现
- 如何在C#中定义动态的数组结构啊??
- DataGrid应用样式文件定义动态样式
- C/C++面试之算法系列--二维动态数组定义及二维静态数组与**P的区别
- DataGrid应用样式文件定义动态样式
- C#中动态数组(ArrayList )应用实例子
- C++中的动态多维数组
- C++ 用new 动态创建多维数组
- 二维动态数组定义及二维静态数组与**P的区别
- C#中的多维数组的应用
- DataGrid应用样式文件定义动态样式
- 纯c语言实现动态分配多维数组的方法