0
点赞
收藏
分享

微信扫一扫

C++ STL 结构体作为map键值

彭维盛 2022-02-12 阅读 69

在使用map等关联式容器时,用结构体作为键时,在用到键比较的场合时会报错,键无法比较。

比如:

  • map每次插入新元素都需要比较键,自动排序。
  • map.count(key)对某一键计数。

因为键是我们自定义的,编译器找不到类似模板,无法比较。我们自己重载<运算符即可,指出我们在比较结构体时具体是比较哪个成员变量。

struct Test{
    string data;
    int x;

    bool operator<(const package& tmp) const{//重载运算符<
        if(this->data < tmp.data)return true;  
        else return false;
    }
};
举报

相关推荐

0 条评论