排序有关问题 急

排序问题 急!struct stu{int a1int a2int a3.............int a59}vectorstu vv[0] a0 a1 a2....

排序问题 急!
struct stu
{
  int a1;
  int a2;
  int a3;
  ....
  ....
  .....
  int a59;
}

vector<stu> v;

v[0] = a0 a1 a2.....到a59 
v[1] = a0 a1 a2.....到a59
.....

用a2作为索引怎么把vector从小到大排序。

[解决办法]

C/C++ code
#include <iostream>#include <algorithm>#include <vector>using namespace std;bool myfunction (int i,int j) { return (i<j); }struct myclass {  bool operator() (int i,int j) { return (i<j);}} myobject;int main () {  int myints[] = {32,71,12,45,26,80,53,33};  vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33  vector<int>::iterator it;  // using default comparison (operator <):  sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33  // using function as comp  sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)  // using object as comp  sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)  // print out content:  cout << "myvector contains:";  for (it=myvector.begin(); it!=myvector.end(); ++it)    cout << " " << *it;  cout << endl;  return 0;}
[解决办法]
重载个operator<

bool operator<(const Student& s1, const Student& s2)
{
if (s1.a2 < s2.a2)
return true;
else
return s1.a1 < s2.a1;
//根据需要自己改
}
std::sort(sutVector.begin(), stuVector.end());
[解决办法]
我在 VC6.0上没错啊
C/C++ code
#include<iostream>#include<algorithm>#include<vector>using namespace std;struct stu{    int a1,a2,a3,a4;};bool cmp(stu a, stu b){    if(a.a2 == b.a2)        return a.a1 < b.a1;    else        return a.a2 < b.a2;}int main(){    vector<stu> v;    stu st1,st2,st3;    st1.a1= 3; st1.a2=4;st1.a3=5;st1.a4=6;    v.push_back(st1);    st2.a1= 2; st2.a2=4;st2.a3=5;st2.a4=6;    v.push_back(st2);    st3.a1= 1; st3.a2=4;st3.a3=5;st3.a4=6;    v.push_back(st3);    sort(v.begin(), v.end(), cmp);    for(int i = 0; i<3; ++i)    {        cout<<v[i].a1<<" ";    }    cout<<endl;    return 0;}