自定义类的sort()有关问题

自定义类的sort()问题
class A
{
public:
vector<A> a;
void sortA(vector<A>&);
private:
int i;
string s;
double d;

};
void A::sortA(vector<A>& a)
{
sort()
}
请问我想按照double d给存储A的vector<A> a降序排列 sortA()要怎么写;是否要重载〉?
是否是这样?
void operator>(A& a1); 还是A operator>(A& a1); 我想的是应该穿2个A对象 可是提示参数太多 求解谢谢

------解决方案--------------------
一个参数应该是成员函数,两个参数应该设置为友元函数。
------解决方案--------------------
如果想用stl::sort,重载<操作符
------解决方案--------------------
降序排列也只要重载<就行了,需要返回值int
我试着写了一个,那个class A 中pubic的成员 vector<A> a;看着总觉得有点奇怪,所以我注释掉了,放到main里面了。
C/C++ code

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;

class A
{
public:
    //vector<A> a;
    A (int n=0,string str="",double dd=0.0):i(n),s(str),d(dd) {

    }
    void sortA(vector<A>&);
    int operator < (const A& aa) {
        if(i!=aa.i) {
            return i>aa.i;
        }else if(s!=aa.s) {
            return s>aa.s;
        }else {
            return d>aa.d;
        }
    }
    friend ostream& operator<< (ostream& os,const A& aa) {
        return os << "(" << aa.i << "," << aa.s << "," << aa.d << ")";
    }
private:
    int i;
    string s;
    double d;

};
void A::sortA(vector<A>& a)
{
    vector<A>::iterator it1=a.begin();
    vector<A>::iterator it2=a.end();
    sort(it1,it2);
}

int main(void)
{
    vector<A> a;
    a.push_back(A(1,"bbb",1.1));
    a.push_back(A(1,"aaa",1.2));
    a.push_back(A(2,"ccc",1.3));
    a.push_back(A(2,"ccc",1.1));
    a.push_back(A(3,"aaa",1.1));
    A obj;
    obj.sortA(a);
    copy(a.begin(),a.end(),ostream_iterator<A> (cout," "));
    getchar();
    return 0;
}