0

我在 C++ 中有一个这样定义的名称类:

class name{
public:
  int range;
  int num;
  char type;
  string n;
};

如何按字母顺序排列包含基于的名称的数组string n

4

2 回答 2

0

std::sort可选地接受一个谓词,它可以是一个函数、lambda 或其他可调用的东西。在这里你可以只写一个简单的函数bool orderByName(name const& A, name const& B)

于 2013-10-30T08:44:42.660 回答
0

一种方法是重载operator<以将其n与另一个对象的(相同类型)进行比较n。如果 aname由其n变量标识并n定义其顺序,则这可能是一个合适的解决方案。

对于排序,算法库中有一些函数可以做到这一点。

重载看起来像这样:

bool operator<(const name &o) const {
  return n < o.n;
}

定义其他五个比较运算符也是一个好主意。平等很容易,然后其余的可以定义<==

bool operator==(const name &o) const {
  return n == o.n;
}
于 2013-10-30T01:22:33.407 回答