使用CArray实现长度可变的二维数组的方法

原创 2018年04月16日 22:25:20

MFC CArray可实现大小可扩展的一维数组。实现二维数组一般有两种方法:

1. 从CArray派生模板类,并实现operater=操作符。(这种方法网上资料很多,但大多都有问题)

2. 本文方法---直接从CArray模板类嵌套产生,可实现任意类型的二维数组。

这里以int类型为例,在基于对话框的应用程序中,添加按钮的消息处理函数:

void CxxxDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	typedef CArray <int,int&> IntArray;             //一维数组类型定义
	typedef CArray<IntArray*, IntArray*> CIdArray;  //二维数组类型定义
	IntArray subid, subid2;                         //定义一维数组变量
	CIdArray mid;                                   //定义二维数组变量
	//数据存储
	int element[10];
	//第一行
	element[0]=122;
	element[1]=145;
	element[2]=356;
	element[3]=287;
	subid.Add(element[0]);
	subid.Add(element[1]);
	subid.Add(element[2]);
	subid.Add(element[3]);
	mid.Add(&subid);         //注意是对象的引用
	//第二行
	element[0]=12;
	element[1]=32;
	element[2]=44;
	element[3]=78;
	subid2.Add(element[0]);
	subid2.Add(element[1]);
	subid2.Add(element[2]);
	subid2.Add(element[3]);
	mid.Add(&subid2);
	
	//数据读取
	CString str;
	str.Format(_T("%d"), mid.GetAt(1)->GetAt(2));  //显示第2行第3个元素值44
	MessageBox(str);
}

关于如何利用CARRAY实现二维数组

转自 CArray 实现二维数组   在MFC中,如何既利用CArray的操作便利性,又同样实现二维数组的功能呢?下面介绍一下如何实现。   Cpp代码  s...
  • wuyanmei5566
  • wuyanmei5566
  • 2015-08-03 10:49:41
  • 389

自定义可变长度二维数组

private void initData(){ specificationList=DataView.modelList; System.out.println("mod...
  • solarsaber
  • solarsaber
  • 2015-11-04 14:13:12
  • 562

C++ 可变长数组类的实现

涉及到构造函数,析构函数,复制构造函数,运算符=, [ ] 的重载等。 #include using namespace std; class CArray { public: CAr...
  • guo503604087
  • guo503604087
  • 2016-04-07 09:13:21
  • 1775

16. Java二维数组可以变长

因为本质上是 一维数组挂一维数组,一维数组可以不定长 int[][] a = new int[][]{{1,2,3},{1},{2,4,5}};...
  • hackeraaa
  • hackeraaa
  • 2016-03-19 01:59:30
  • 419

CArray,CStringArray的使用

1、CStringArray在使用时,要先CStringArray.SetSize(0,1),进行初始化,初始化为这个值是很有意义的,设置递增进度为1,解决了初始分配空间不足时产生的溢出错误,这种错误...
  • harvic880925
  • harvic880925
  • 2012-06-18 19:56:47
  • 8470

C++ vector CArray 动态申请二维数组

vector头文件: vector动态申请二维数组  vector > hh;  vector vec_temp;  for(i=0;i       hh.push_back(vec_temp); ...
  • szv123_rier
  • szv123_rier
  • 2013-12-16 18:10:56
  • 2056

java动态二维数组的实现

  • 2013年04月06日 10:27
  • 6KB
  • 下载

JAVA实现不定长度二维数组的转置

//实现不定长度二维数组的转置 public static void transposition_Arrays2D() { /**定义要用于转置的二维数组**/ int arr2D[][] =...
  • bb276983381
  • bb276983381
  • 2017-04-21 10:52:12
  • 731

Java 中二维数组的长度是否固定?

数组的本质是一种Java类,它的这种特性就导致它的多位数组就比较有特点,可以无限的扩展维度,并且每个维度元素的长度也可以参差不齐。 java的二维数组其实这样的:先创建一个一维数组,然后该数组的元素...
  • qq_33642117
  • qq_33642117
  • 2016-08-15 21:52:11
  • 2020

MFC数组类CArray的使用

MFC数组类CArray的使用     MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所 有可能需要的元素,即先确定大小,而MFC数组...
  • guolidongguolidong
  • guolidongguolidong
  • 2014-11-24 11:09:38
  • 3089
收藏助手
不良信息举报
您举报文章:使用CArray实现长度可变的二维数组的方法
举报原因:
原因补充:

(最多只允许输入30个字)