码迷,mamicode.com
首页 > 其他好文 > 详细

结构体嵌入字典或者集合

时间:2019-07-21 21:23:51      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:end   key   区别   div   operator   使用   优先   自己   bsp   

在使用STL时,由于解题的需要我们常常将结构体嵌入到字典或者集合中,,如果我们这样写:

struct stu{
int a;
int b;
};
mp<stu,int >mp;

在编译的时候会报错,,因为map和set会对STL中的元素排序,如果说直接嵌入的话,, 会使map无法对key进行排序,所以要自己在结构体中定义排序方法;

struct stu{
    int a;
    int b;
    bool friend operator <(const stu &x,const stu &y){
        if(x.a!=y.a)  return x.a>y.a;
        return x.b>y.b;//使结构体根据优先根据a排序其次根据b排序
    }
};
mp<stu,int >mp;

这样写的话就可以编译通过了。

对结构体的排序常常用 bool cmp  然后一行sort ;;这个排序和结构体内置函数排序还是有区别的;具体是什么个区别还真的不知道;反正如果可以用cmp排序的话  尽量用cmp

 

结构体嵌入字典或者集合

标签:end   key   区别   div   operator   使用   优先   自己   bsp   

原文地址:https://www.cnblogs.com/Accepting/p/11222727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!