【发布时间】:2017-01-30 19:49:44
【问题描述】:
我有一个 Person 对象数组,其中包含一个成员变量 name。我正在尝试使用重载的比较运算符按字母顺序对它们进行排序,该运算符使用 string::compare 来比较对象中的字符串。
bool Person::operator==(Person p) {
if (name.compare(p.name) == 0) {
return true;
}
else {
return false;
}
}
这有效并给了我正确的结果,但我不知道如何使用它按字母顺序排列数组中的名称。
我环顾四周,看到关于 string::compare 的文档说
比较字符串与比较字符串的关系
- 0 他们比较相等
- 较短。
- ,>0 比较字符串中第一个不匹配的字符的值大于>,或者所有比较的字符都匹配但比较的字符串较长。
不过,我想不出用这些信息解决我的问题的方法。
我的目标是正确的还是有更好的方法?
【问题讨论】:
-
我没有在 any 中看到您的标题中提到的 指针。我也没有看到对使用自定义比较器的排序例程(例如
std::sort)的任何调用(如果您要使用std::sort,则应该是operator <)。简而言之,我看不到minimal, complete, verifiable example。
标签: c++ arrays sorting compare operator-overloading