我想知道STL是否有这方面的支持:
说我有这样一个类:
class Person
{
public:
int getAge() const;
double getIncome() const;
..
..
};
Run Code Online (Sandbox Code Playgroud)
和矢量:
vector<Person*> people;
Run Code Online (Sandbox Code Playgroud)
我想按照他们的年龄对人的矢量进行排序:我知道我可以通过以下方式进行:
class AgeCmp
{
public:
bool operator() ( const Person* p1, const Person* p2 ) const
{
return p1->getAge() < p2->getAge();
}
};
sort( people.begin(), people.end(), AgeCmp() );
Run Code Online (Sandbox Code Playgroud)
是否有一个不那么冗长的方法来做到这一点?仅仅因为我想基于'属性'进行排序而必须定义整个类似乎有点过分.这样的事可能吗?
sort( people.begin(), people.end(), cmpfn<Person,Person::getAge>() );
Run Code Online (Sandbox Code Playgroud)