在MFC对象中使用,可以使用std::map。但是,由于MFC对象不是POD类型,因此无法使用std :: map的默认构造函数插入MFC对象。为了避免这个问题,可以通过指定std :: map的排序函数来手动初始化MFC对象。
代码示例:
class CMyClass : public CObject
{
public:
int nValue;
bool operator < (const CMyClass& ref) const
{
return (nValue < ref.nValue);
}
};
typedef std::map<CMyClass, CString, less<CMyClass> > MyMFCMap;
MyMFCMap map;
CMyClass obj1, obj2;
obj1.nValue = 1;
obj2.nValue = 2;
map[obj1] = _T("One");
map[obj2] = _T("Two");