一提到排序,很容易想到各种各样的排序算法,比如冒泡排序,插入排序,快速排序等。但是游戏中如果涉及到排序,例如积分排行榜,贡献榜等,往往不是直接通过这类排序算法来实现的,而是可以通过STL容器(set或者map)自带的排序功能来实现。例如可以这样实现:
struct test_t
{
int a;
int b;
bool operator() (const test_t& lhs, const test_t& rhs)
{
if (lhs.a > rhs.a) {
return ture;
} else if (lhs.a < rhs.a) {
return false;
}
if (lhs.b > rhs.b) {
return ture;
} else if (lhs.b < rhs.b) {
return false;
}
return false;
}
set<test_t, test_t> test_set;
map<test_t, int, test_t> test_map;
这样,当往set容器里面插入数据时,会按照a值从大到小排序,如果a相同,则按照b值从大到小排序。
同理,当往map容器里面插入数据时,会按照key值中的a从大到小排序,如果a相同,则按照b从大到小排序。
6891

被折叠的 条评论
为什么被折叠?



