我有一个包含成员变量name的Person对象数组。我试图使用重载的比较运算符按字母顺序排序,使用string :: compare来比较对象中的字符串。
bool Person::operator==(Person p) {
if (name.compare(p.name) == 0) {
return true;
}
else {
return false;
}
}
这可行并给我正确的结果,但我不知道如何使用它来按字母顺序排列数组中的名称。
我环顾四周,看到有关string :: compare的文档说
比较字符串与比较字符串
之间的关系
- 0他们比较相等
- < 0>中不匹配的第一个字符的值较低。比较字符串或所有比较字符匹配但比较字符串>更短。
- ,> 0比较字符串中不匹配的第一个字符的值大于>或者所有比较的字符匹配但比较的字符串更长。
我无法想办法用这些信息来解决我的问题。
我正在努力做正确的事情,还是有更好的方法?
答案 0 :(得分:2)
您的操作员已正确定义,但它不是您正在寻找的操作员。您想要定义运算符<,然后使用std :: sort。