C++使用set对自定义类型数据去重(debug)
需求
我的需求是有一个自定义类型Address,它有两个成员变量
//Address的成员变量
string name;
int number;
我想要使用一个set来存储各个Address,Address不能重复(要name和number都不相等才算不等)。由于address并没有大小排序,所以我只是想去重,没有排序的需求。
//存储各个Address,不能重复
set<Address> myset;
bug代码
我一开始参考了c++中std::set自定义去重和排序函数中提到的,“只要你的比较方法能够满足对相等元素永远返回false就满足要求了”,在自定义类型Address 中重载了operator<。因为std::set默认调用的Compare是std::less,而less会调用结构体中的operator<来进行比较。
struct Address{
private:
string name;
int number;
public:
Address() = default;
Address(string n,int d):name(n),number(d){};
bool ope