~cpp #include <iostream> #include <vector> #include <string> #include <algorithm> #include <functional> using namespace std; struct student{string name; int score;}; bool compare(student a, student b); bool compare2(student a, student b); void main() { student st[5]; st[0].name = "build"; st[0].score = 48; st[1].name = "deb"; st[1].score = 57; st[2].name = "finde"; st[2].score = 87; st[3].name = "inew"; st[3].score = 90; st[4].name = "ilbo"; st[4].score = 82; vector <student> stre; stre.push_back(st[0]); stre.push_back(st[1]); stre.push_back(st[2]); stre.push_back(st[3]); stre.push_back(st[4]); sort(stre.begin(), stre.end(),compare); for(vector<student>::iterator i = stre.begin(); i!=stre.end() ;i++) cout << i->name <<"\t"<<i->score<< endl; cout<<"-------------------------"<<endl; sort(stre.begin(), stre.end(),compare2 ); for(i = stre.begin();i<stre.end();i++) cout << i->name <<"\t"<<i->score<< endl; /* for(vector<student>::iterator i = stre.begin();!(i=stre.end());i++) cout << (*i).name << endl; */ } bool compare(student a, student b) { return a.name < b.name; } bool compare2(student a, student b) { return a.score < b.score; }