MFC常用函数Ⅲ(容器)

①容器CArray——数组

template <class TYPE, class ARG_TYPE = const TYPE&>
class CArray : public CObject
// Arrays
class CByteArray;           // 支持字节的动态数组。
class CWordArray;           // 支持 16 位数组。
class CDWordArray;          // 支持 32 位双字数组。
class CUIntArray;           // 支持无符号整数数组。
class CPtrArray;            // 支持 void 指针数组。
class CObArray;             // 支持 CObject 指针数组。
方法说明
CArray::Add向数组的末尾添加一个元素;根据需要扩展该数组。
CArray::Append将另一个数组追加到数组;如有必要,增大数组
CArray::Copy将另一个数组复制到该数组;根据需要扩展该数组。
CArray::ElementAt在该数组中返回对元素指针的临时引用。
CArray::FreeExtra若高于当前的上限,则将释放所有未使用的内存。
CArray::GetAt返回给定索引位置处的值。
CArray::GetCount获取此数组中的元素数。
CArray::GetData允许访问该数组中的元素。 可以为 NULL
CArray::GetSize获取此数组中的元素数。
CArray::GetUpperBound返回最大的有效索引。
CArray::InsertAt在指定索引处插入一个元素(或另一个数组中的所有元素)。
CArray::IsEmpty确定数组是否为空。
CArray::RemoveAll从此数组中移除所有元素。
CArray::RemoveAt移除特定索引处的元素。
CArray::SetAt设置给定索引的值;不允许对该数组进行扩展。
CArray::SetAtGrow设置给定索引的值;根据需要扩展该数组。
CArray::SetSize设置要在该数组中包含的元素数。

 具体函数使用:CArray 类 | Microsoft Docs

②容器CList——有序列表

template<class TYPE, class ARG_TYPE = const TYPE&>
class CList : public CObject
// Lists
class CPtrList;             // 支持 void 指针列表。
class CObList;              // 支持 CObject 按顺序或指针值访问的不唯一指针的有序列表。
方法说明
CList::AddHead将元素 (列表或另一个列表中) 元素添加到列表的 (,以) 。
CList::AddTail将一个元素 (列表或另一个列表中) 元素添加到列表尾部, (创建一个新的) 。
CList::Find获取指针值指定的元素的位置。
CList::FindIndex获取由从零开始索引指定的元素的位置。
CList::GetAt获取位于给定位置的元素。
CList::GetCount返回此列表中的元素数。
CList::GetHead返回列表的 head 元素 (不能为空) 。
CList::GetHeadPosition返回列表的头元素的位置。
CList::GetNext获取用于进行轮次的下一个元素。
CList::GetPrev获取上一个用于进行复用的元素。
CList::GetSize返回此列表中的元素数。
CList::GetTail返回列表的 tail 元素 (不能为空) 。
CList::GetTailPosition返回列表的结尾元素的位置。
CList::InsertAfter在给定位置后插入新元素。
CList::InsertBefore在给定位置之前插入新元素。
CList::IsEmpty测试空列表条件 (元素) 。
CList::RemoveAll从此列表中移除所有元素。
CList::RemoveAt从此列表中移除按位置指定的元素。
CList::RemoveHead从列表的头部移除 元素。
CList::RemoveTail从列表的结尾移除 元素。
CList::SetAt设置给定位置的元素。

 具体函数使用:CList 类 | Microsoft Docs

③容器CMap——映射、字典

template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
class CMap : public CObject
// Maps (aka Dictionaries)
class CMapWordToOb;         // 支持 16 位键控的 CObject 指针的映射。
class CMapWordToPtr;        // 支持 16 位键控的 void 指针的映射。
class CMapPtrToWord;        // 支持 void 指针键控的 16 位的映射。
class CMapPtrToPtr;         // 支持 void 指针键控的 void 指针的映射。
方法说明
CMap::GetCount返回此映射中的元素数。
CMap::GetHashTableSize返回哈希表中的元素数。
CMap::GetNextAssoc获取用于循环访问的下一个元素。
CMap::GetSize返回此映射中的元素数。
CMap::GetStartPosition返回第一个元素的位置。
CMap::InitHashTable初始化哈希表并指定其大小。
CMap::IsEmpty测试空映射条件 (不) 任何元素。
CMap::Lookup查找映射到给定键的值。
CMap::PGetFirstAssoc返回指向第一个元素的指针。
CMap::PGetNextAssoc获取指向要循环访问的下一个元素的指针。
CMap::PLookup返回一个指向其值与指定值匹配的键的指针。
CMap::RemoveAll从此映射中移除所有元素。
CMap::RemoveKey移除由键指定的元素。
CMap::SetAt将元素插入到映射中;如果找到匹配的键,则替换现有元素。

具体函数使用:CMap 类 | Microsoft Docs

特殊的类:

// Special String variants
class CStringArray;         // 支持 CString 对象数组。
class CStringList;          // 支持 CString 对象列表。
class CMapStringToPtr;      // 支持 CString 对象键控的 void 指针的映射。
class CMapStringToOb;       // 将唯一 CString 对象映射到 CObject 指针的字典集合类。
class CMapStringToString;   // 支持 CString 对象键控的 CString 对象的映射。

//
template<typename BaseType, class StringTraits>
class CStringT :public CSimpleStringT<BaseType,
_CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>::c_bIsMFCDLLTraits>

STL中与之对应的三个类

#include <vector>

#include <list>

#include <map>

#include <iostream>

注意:在使用对应的容器时,需要添加对应的容器头文件和#include<iostream>

template <class Type, class Allocator = allocator<Type>>
class vector
template <class Type, class Allocator= allocator<Type>>
class list
template <class Key,
    class Type,
    class Traits = less<Key>,
    class Allocator=allocator<pair <const Key, Type>>>
class map;

 STL库中的容器与MFC中对应的容器使用相似。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值