hur.cn - 华软网

 热门搜索

CArray ,CList,CMap的小问问

  作者:未知    来源:网络    更新时间:2009/7/5
关于CArray ,CList,CMap的几个问题,想请教各位。
1.CArray ,CList,CMap,都是集合类吗?
2.集合类主要有什么特性,C++Primer第四版中又把Map归为容器,那容器和集合有什么联系和区别呢?
3.集合类和群体类有什么区别?(感觉好像很有联系,有些书上就把Array归为群体类)
4.CArray可以叫作动态数组,那CList,CMap叫什么?
5.CobArray,CStringArray,CPtrArray,CDwordArry的函数都差不多,使用都有些什么区别呢?
6。CMap和C++标准库里面的map有什么联系吗?C++标准库有定义list,Array方面的操作吗?
---华软 网友回答---
只是一些名词而已,并不是很精确的定义,因此你很难说他们有什么区别和联系的
可以这么说,容器、集合在你说的情况中似乎是完全一样的,没有什么差别
只要能包含多个同种元素的类,都可以看作是集合或者容器类,或者是群体类
Array是数组,List当然叫链表,Map自然就是map(映射?)从名字就可以看出了啊?
5: 区别在于他们包含的数据类型不一样啊?!
6: 思想类似,其他无联系

很多东西不要依赖别人给你答案,有些东西其实自己能搞出来

---华软网友回复---
引用 1 楼 arong1234 的回复:
只是一些名词而已,并不是很精确的定义,因此你很难说他们有什么区别和联系的 
可以这么说,容器、集合在你说的情况中似乎是完全一样的,没有什么差别 
只要能包含多个同种元素的类,都可以看作是集合或者容器类,或者是群体类 
Array是数组,List当然叫链表,Map自然就是map(映射?)从名字就可以看出了啊? 
5: 区别在于他们包含的数据类型不一样啊?! 
6: 思想类似,其他无联系 

很多东西不要依赖别人给你答案,有些…

谢谢你的答复,回答的不错。明白了好一些。
---华软网友回复---
你要是使用.NET的C#,就知道MFC搞的这些复杂难懂的东西,实在是令人头疼。在C#中,你尽管用就行了,不用去搞清楚是容器呀还是什么的这些晦涩的东东。
---华软网友回复---
CArray,CMap,CList主要用来处理什么实际问题呢?
---华软网友回复---
学完数据结构的书再看是不是已经会了
引用 4 楼 woneedjob 的回复:
CArray,CMap,CList主要用来处理什么实际问题呢?

---华软网友回复---
引用 4 楼 woneedjob 的回复:
CArray,CMap,CList主要用来处理什么实际问题呢?

CArray对应vector,CMap对应map,CList对应list.
CArray:适合随机访问数组,可以通过索引来访问
CMap:就是映射表了,当你需要通过key来查找的情况
CList:就是链表。
---华软网友回复---
引用 4 楼 woneedjob 的回复:
CArray,CMap,CList主要用来处理什么实际问题呢?


可以用来存放自定义的结构 类指针 等等  详见MSDN
---华软网友回复---
引用 6 楼 oyljerry 的回复:
引用 4 楼 woneedjob 的回复:
CArray,CMap,CList主要用来处理什么实际问题呢? 


CArray对应vector,CMap对应map,CList对应list. 
CArray:适合随机访问数组,可以通过索引来访问 
CMap:就是映射表了,当你需要通过key来查找的情况 
CList:就是链表。


恩。
我理解是,一套是mfc里的东西(C开头的那些),一套是stl里的东西,习惯哪套就用哪套吧。至于分别用来做什么,看它各自实现什么功能,用到时就用吧。
vector动态数组;
list链表,也能看做动态数组,插入多的时候,用这好;
map就是vector提供unsigned到其他类型的一个映射,map可以实现多谢,可以认为vector是特殊类型的map,就是key为unsinged类型的map。

---华软网友回复---
不错,谢谢各位。还有个小问题,解答了马上结贴,谢谢。

 example for CObArray::Add

    CObArray array;
    
    array.Add( new CAge( 21 ) ); // Element 0
    array.Add( new CAge( 40 ) ); // Element 1
#ifdef _DEBUG
    afxDump.SetDepth( 1 );
    afxDump << "Add example: " << &array << "\n";
#endif

The results from this program are as follows:

Add example: A CObArray with 2 elements
    [0] = a CAge at $442A 21
    [1] = a CAge at $4468 40



上面的代码是msdn中的CObArray::Add函数example,里面有个CAge这个是什么类呢?msdn查不到,又没见定义,怎么回事呢?
CObArray::Add 函数每次增加的是都是一个Cobject对象吗?
---华软网友回复---
引用 9 楼 woneedjob 的回复:
不错,谢谢各位。还有个小问题,解答了马上结贴,谢谢。 

C/C++ code
 example for CObArray::Add

    CObArray array;
    
    array.Add( new CAge( 21 ) ); // Element 0
    array.Add( new CAge( 40 ) ); // Element 1
#ifdef _DEBUG
    afxDump.SetDepth( 1 );
    afxDump << "Add example: " << &array << "\n";
#endif

The results from this program are as follows:

Add example: A CObArray w…

CAge 应该是自定义类..
---华软网友回复---
引用 10 楼 oyljerry 的回复:
引用 9 楼 woneedjob 的回复:
不错,谢谢各位。还有个小问题,解答了马上结贴,谢谢。 

C/C++ code 
example for CObArray::Add 

    CObArray array; 
    
    array.Add( new CAge( 21 ) ); // Element 0 
    array.Add( new CAge( 40 ) ); // Element 1 
#ifdef _DEBUG 
    afxDump.SetDepth( 1 ); 
    afxDump < < "Add example: " < < &array < < "\n"; 
#endif 

The results from this program are …

自定义类?那msdn怎么没定义清楚呢。没定义清楚怎么看的明白啊?msdn应该不会写的那么不清楚吧?
---华软网友回复---
Example

See CObList::CObList for a listing of the CAge class used in all collection examples

msdn还有这个句子,里面有CAge的定义。谢谢大家,结贴。

---华软网友回复---
CArray CList CMap是MFC里面的
vector list map是STL里面的
分别是动态数组,动态链表,哈希表      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。