小编Kar*_*ath的帖子

为什么重载operator<()不能实现比较功能?

我正在看这个。作者首先operator<()在my_data中定义并表示“一切正常”。添加成员变量后,他说“operator<()并没有真正实现比较操作”。我想知道两者有什么区别,为什么前者是错误的?


struct my_data
{
    std::string key;
    std::string value;
    //first
    bool operator<(const my_data data)const {           
        return key < data.key;
    }
};
//second
struct Compare
{
    bool operator()(const my_data& l, const my_data& r)
        const {
        return l.key < r.key;
    }
};
Run Code Online (Sandbox Code Playgroud)

那里

c++

1
推荐指数
1
解决办法
274
查看次数

标签 统计

c++ ×1