排序时不止根据一个因素的大小来排,而是有多个因素,每个因素之间有优先级,比如说给一个班的学生排序,高的排前面,如果一样高的则体重大的排前,如果身高体重一样的则年龄大的排前。
可以用一个结构存一个学生的信息:身高、体重、年龄,然后重载小于号'<' 和大于号'>',这样重载:
struct Student{
int height, weight, age;bool operator < (const Student& other){if(this->height !=other.height)return this->height < other.height;else{if(this->weight != other.weight)return this->weight < other.weight;else{if( this->age != other.age )return this->age < other.age;}}}
bool operator > (const Student& other){if(this->height !=other.height)return this->height > other.height;else{if(this->weight != other.weight)return this->weight > other.weight;else{if( this->age != other.age )return this->age > other.age;}}}
};