由于某种历史原因,原来map的key在信息汇总之后无法唯一,因此需要新的key。完全修改之前的代码结构不实际,时间也不允许。因此需要自定义一个map的key。如下:
//定义自己的key
struct CmpKey
{CmpKey(int role=0,int svr=0)
{
this->role = role;
this->server = svr;
}
int role;
int server;
};
//定义自己的比较类
{
public:
bool operator() (const CmpKey &left, const CmpKey &right) const
{
if(left.role < right.role)
{
return true;
}
if(left.role ==right.role)
{
if(left.server < right.server)
{
return true;
}
}
return false;
}
};
typedef std::map<CmpKey, RankInfo *,RoleCmp > RankMap;