首页 > 代码库 > 使用对象中的几个key值来排序
使用对象中的几个key值来排序
环境:vs2012 win7 c++
1 #include<alogrithem>
2 写一个比较函数,体现对象间是按照哪些key值来排序的。
3 使用std::sort函数。
例子如下:
#include <algorithm> /* 排序规律: 星级最大的排前面,其次等级越大排前面,再其次是经验越大排前面,最后是其次是ID值越大排越后面。 */ bool myCompare(GameCardVo* obj1,GameCardVo* obj2) { if (obj1->configRoleData->star!=obj2->configRoleData->star) //星级第一优先考虑 { return (obj1->configRoleData->star>obj2->configRoleData->star); } else { if (obj1->getLevel()!=obj2->getLevel()) { return (obj1->getLevel()>obj2->getLevel()); } else { if (obj1->getExp()!=obj2->getExp()) { return (obj1->getExp()>obj2->getExp()); } else { return (obj1->ownID_INT<obj2->ownID_INT); } } } }
开始使用:
std::vector<GameCardVo*> vectorSortCard; int i=0; for(i = 0; i<len; i++) { auto role = (GameCardVo*)arr.at(i); vectorSortCard.push_back(role); } std::sort(vectorSortCard.begin(),vectorSortCard.end(),myCompare);
ok了。代码很明显是不全的,主要是记录下大概怎么做。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。