因此,在头的C ++文档中有一个很好的功能,可以让你排序向量。 我有一类Person
。 我有一个指针的指向这个类(的对象矢量vector<Person*>
我想通过不同的参数,人们比较例如年龄,姓名的长度等等。
我已经有这返回所需的变量函数,但我不知道该怎么做。 下面是在c排序矢量函数的链路++参考http://www.cplusplus.com/reference/algorithm/sort/
因此,在头的C ++文档中有一个很好的功能,可以让你排序向量。 我有一类Person
。 我有一个指针的指向这个类(的对象矢量vector<Person*>
我想通过不同的参数,人们比较例如年龄,姓名的长度等等。
我已经有这返回所需的变量函数,但我不知道该怎么做。 下面是在c排序矢量函数的链路++参考http://www.cplusplus.com/reference/algorithm/sort/
这是如此简单:
struct student
{
string name;
string grade;
};
bool cmd(const student & s1, const student & s2)
{
if (s1.name != s2.name) return s1.name < s2.name;
return s1.grade < s2.grade;
}
然后:
vector<student> s;
sort(s.begin(), s.end(), cmd);
学生将alphabatically排序。 如果两个学生有同样的名字,他们会用他们的等级进行排序。
尝试重写操作者像“<”,“>”使用的对象的相同的属性。 在此之后,你可以重新定义了某种操作。