MFC容器类CArray,CList
我们知道有各种各样的数据结构,啥栈,队列,树之类的.不过其实这些用的都非常少,用的最多的是线性表.平常我们用的数组最是典型的线性表.我们可以像int [] arrp这样简单的定义一个数组.不过这是固定大小的.不够灵活.所以出现了所谓的动态数组.STL中的动态数组叫vector,MFC中类似的动态数组是CArray.它跟vector一样也是一个模板类.由于数组嘛插入数据时效率较低,所以又有链表...
我们知道有各种各样的数据结构,啥栈,队列,树之类的.不过其实这些用的都非常少,用的最多的是线性表.平常我们用的数组最是典型的线性表.我们可以像int [] arrp这样简单的定义一个数组.不过这是固定大小的.不够灵活.所以出现了所谓的动态数组.
STL中的动态数组叫vector,MFC中类似的动态数组是CArray.它跟vector一样也是一个模板类.由于数组嘛插入数据时效率较低,所以又有链表.
STL中的链表是list,MFC中类似的链表是CList(是一个双链表)
CArray 简单用法
CArray<int> ca;
ca.Add(11); //添加元素
ca.Add(33);
ca.InsertAt(1, 22); //在索引为1的地方插入元素22
ca.RemoveAt(1); //删除索引为1的元素
ca.GetSize(); //得到数组长度
POSITION pos = ca.GetStartPosition(); //POSTION有点类似STL中的迭代器iterator.MFC里没迭代器
int val = ca[0];
ca.RemoveAll(); //删除所有元素
CList简单用法
CList<int> list;
list.AddHead(11); //头部插入元素
list.AddHead(22);
list.AddTail(99); //头部移除元素
list.AddTail(88);
list.RemoveHead();//删除头部元素
list.RemovTail();
int count = list.GetCount();
bool empty = list.IsEmpty();
int hVal = list.GetHead();
int tVal = list.GetTail();
POSITION pos = list.GetHeadPosition();
pos = list.GetTailPosition();
int val = list.GetAt(pos);
list.GetNext(pos); //pos移到下一位
pos = list.Find(88); //找到88所在位置
更多推荐
所有评论(0)