#pragma pack(push, 1)
struct TMagicgod {
WORD wMagicId;//技能ID
int getSkillType() {
return btSkillType % SkillType_JOINT_MASK;
}
bool isJoint() {
return btSkillType >= SkillType_JOINT_MASK;
}
};
#pragma pack(pop)
typedef TMagicgod* pTMagicgod;
//存储非指针
std::map<int, TMagicgod> g_MagicTplMap; //技能配置
//自动申请 内存空间 并且拿到 指针用于填写内容
TMagicgod& item = g_MagicTplMap[wMagicId];
//?这是什么写法》? 如果不存在则自动添加一条 ? 存放的不是指针 使用 & 符号获得 访问等等。。。?这样做list列表会同步内容?
//滞空内存
memset(&item, 0, sizeof(item));
//填写数据
item.wMagicId = wMagicId;
//搜索返回指针
TMagicgod* findDBMagicPtr(int wMagicId)
{
std::map<int, TMagicgod>::iterator it = g_MagicTplMap.find(wMagicId);
if (it == g_MagicTplMap.end())
{
return nullptr;
}
return &it->second;
}
//清空
g_MagicTplMap.clear();
//clear()方法,通常只是使得容器内部的对象通通析构,但容器本身的内存无法得到释放。即篮子里面东西拿走了,篮子占的空间还在,这样是为了方便下次存放新的对象时,不需要再次申请空间。
c++ map 存储struct
发布时间 2023-07-09 23:45:11作者: marklove