二维数据的创建和使用问题

cutrain2009 2009-08-17 01:36:03
我想创建一个二维数据,比如二维CString,CBlock(CBlock是自定义的类)

我用下面的方法处理
typedef CArray<CBlock,CBlock&> CD1Block;//一位矩阵
typedef CArray<CD1Block,CD1Block&> CD2Block;//二维矩阵
这样虽然可以创建,但是在使用的时候感觉有点麻烦
比如说我要创建的是3*4的二维数据,该怎么处理,我用new刚创建的时候是一个空的,难到要一个个的Add;

我想要的结果是像一个静态的二维数组一个的方便调用,比如a[3][0]这样简单;

也考虑过自己写一个动态的二维CBlock类,也是可以实现的。
只是我觉得应该有别的简单方法处理吧

本人对MFC刚刚开始接触不久,请大家帮帮忙,谢谢啦
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
二进制浮游 2011-07-14
  • 打赏
  • 举报
回复
只看不说话
xinxingxiangying 2009-08-18
  • 打赏
  • 举报
回复
动态创建二维数组,很多书上都没有,在这儿取到真经啦,哈哈,谢谢!
guangmingdeshenju 2009-08-17
  • 打赏
  • 举报
回复
动态创建易于理解,但代码较多哦
TearyWang 2009-08-17
  • 打赏
  • 举报
回复
动态创建:

// 定义
CBlock **ppBlock = NULL;


// 初始化
ppBlock = new CBlock[x];
for (int i = 0; i < x; i++)
ppBlock[i] = new CBlock();


// 清理
for ( int i = 0; i < x; i++ )
delete ppBlock[i];

delete ppBlock;
ppBlock = NULL;
副组长 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cutrain2009 的回复:]
哈哈想到方法啦
m_pBlockMatrix=new CBlock*[y];
for(i=0;i <y;i++)
m_pBlockMatrix[i]=new CBlock[x];
数据结构的课程都忘了差不多了
悲剧
不知道大家还有其他有效的方法吗
[/Quote]
对,就是这样。我感觉比CPtrArray类的东西好。
cutrain2009 2009-08-17
  • 打赏
  • 举报
回复
哈哈想到方法啦
m_pBlockMatrix=new CBlock*[y];
for(i=0;i<y;i++)
m_pBlockMatrix[i]=new CBlock[x];
数据结构的课程都忘了差不多了
悲剧
不知道大家还有其他有效的方法吗
flyskytoday 2009-08-17
  • 打赏
  • 举报
回复
很简单,就用CString 即可
CString a[3][4];

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧