以结构体为元素的set的自定义排序规则解决思路

以结构体为元素的set的自定义排序规则这个是我抄的struct Info{int math//数学成绩int english//英语成

以结构体为元素的set的自定义排序规则
这个是我抄的
struct Info
{
  int math; //数学成绩
  int english; //英语成绩
  bool operator < (const Info &a) const
  {
  return a.math<math;
  }
}
这应该是一个按数学成绩由高到底排列的,谁能说说重载“<”底是个什么意思,里面的&a是什么,返回了什么?
还有我想做一个排序,就是数学成绩由高到低,如果数学成绩相等,按英语成绩排,我按照上面的样子写的
  bool operator < (const Info &a) const
  {
  if(a.math!=a)return a.math<math;
  else
  return a.english<englishi;
  }
这样行不行?

[解决办法]
重载“<”是重载小于操作符,const Info &a 是引用,是传入参数,有const限制,不能修改
[解决办法]
注意下逻辑

C/C++ code
bool operator < (const Info &a) const{    if(a.math!=a)        return math<a.match;    else        return englishi<a.english;}