游戏中涉及到排行的地方很多,比如战力排行,等级排行等,并且这种排行一般具有一些共同的特征,比如按日周期切换、月周期切换、不切换等,对于这种排行榜来说,可以做成一个通用的排行榜。使用multimap来实现:
//一般都是从大到小排序
struct sort_t
{
bool operator(uint64 l, uint64 r) const {
return l > r;
}
};
mutimap<uint64, RankBase, sort_t> ComMap; //排序的值 对应相关的数据:比如玩家id、角色名等
multimap<time_t, ComMap*, sort_t> rank; //key为时间索引值,主要表示本周期或者上个周期