MAP--复杂map结构的构造

我的关键结构比如
struct{
    int a;
    int b;
    int c;
}s;
因为这三个数据是基本信息,可以唯一区别一个设备。拿这样一个数据结构作为索引就能找到每个设备。

我现在想这么用
map<s, string>

因为map是二叉树,好像没法拿结构体比较大小,去索引,所以把结构体s改成类,重载小于号,让他能比较大小。
class s
{
public:
    int a;
    int b;
    int c;
    s(int m, int d, int u){a=m;b=d;c=u;}
    bool operator < (const s &other)
    {
        if ((a<other.a) ||
           ((a==other.a)&&(b<other.b)) ||
           ((a==other.a)&&(b==other.b)&&(c<other.c)))
        {
             return true;
         }
         return false;
    }
};

然后,
map<s, string> w;
s s1;
string s2;
一旦执行w.insert(make_pair(s1, s2));只要有这行就立刻报错。
要想使用一个类似结构体的数据结构作为KEY到底要怎么做呀?
是不是光重载一个小于号不够呀?
我现在好糊涂。有没有简单办法?


1.1 


struct s {
    int a;
    int b;
    int c;
    bool operator<(const s&)  const  { return true; }
};

map<s,string> m;
m.insert( make_pair(s(),"") );


1.2

struct s {
    int a;
    int b;
    int c;
};

bool operator<(const s&,const s&) { return true; }

map<s,string> m;
m.insert( make_pair(s(),"") );


2.
struct s {
    int a;
    int b;
    int c;
};

struct cmp {
    bool operator()(const s&,const s&) const { return true; }
};

map<s,string,cmp> m;

m.insert(make_pair(s(),"" ) );


转载自:http://bbs.chinaunix.net/thread-1538318-1-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值