CArray如何实现二维问题

CArray<CString,CString>m_string;typedefCArray<CString,CString>m_bigSting;CArray<m_big... CArray<CString,CString> m_string;
typedef CArray<CString,CString> m_bigSting;
CArray<m_bigSting,m_bigSting>allString;
CString sztiger("tiger");
CString szbear("bear");
CString szdog("dog");

m_string.Add(sztiger);
m_string.Add(szdog);
m_string.Add(szbear);

allString.Add(m_string);//这一句报错???
我想问的是CArray实现的二维数组如何去访问,如何去添加元素???
展开
 我来答
天才豆子
推荐于2016-02-17
知道答主
回答量:6
采纳率:0%
帮助的人:12.4万
展开全部
CArray <CString,CString&> m_string;//实现一个类似CStringArray的类
typedef CArray<CString,CString&> m_bigSting;//为构建大的数组做准备
CArray<m_bigSting*,m_bigSting*>allString;//等同于 CArray<CStringArray*,CStringArray*>allString;
接下来的操作就是一样的啦!
//添加字符串到对象数组
m_string.Add(sztiger);
m_string.Add(szdog);
m_string.Add(szbear);
CArray<CStringArray*,CStringArray*>allString;//重要,添加数组的数组
allString.Add(&m_string); //注意取地址
MessageBox((allString.GetAt(0))->GetAt(1)); //访问二维数组的方法
这样做的好处,你可以实现任何的你想要的数组了,比如说:CFloatArray并没有这个类,但是你可以自己构建
CArray <float,float&> m_float;
typedef CArray <float,float&> m_bigFloat;
CArray<m_bigFloat*,m_bigFloat*>allFloat;
通过这三部,不就建立了一个二维的浮点数数组吗?更准确的说应该是集合!
下面是一个具体的例子:
CArray <float,float&> m_float;
CArray <float,float&> m_float2;
typedef CArray <float,float&> m_bigFloat;
CArray<m_bigFloat*,m_bigFloat*>allFloat;
float i1 = 3.14;
float i2 = 5.8;
float i3 = 999;
m_float.Add(i1);
m_float.Add(i2);
m_float.Add(i3);
float i4 = 89.14;
float i5 = 45.8;
float i6 = 789;
m_float2.Add(i4);
m_float2.Add(i5);
m_float2.Add(i6);
allFloat.Add(&m_float);
allFloat.Add(&m_float2);
CString temtri;
//注意这个_T()不能掉,不然出错
temtri.Format(_T("%f"),allFloat.GetAt(1)->GetAt(2));
MessageBox(temtri);

//但是注意,最好是用一维数组去实现,因为以上,也是有局限性的。换种思维,一维数组也是可以实现的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式