比如有些情况吧,我们需要定义结构体,假设有2个元素在里面, 一个成绩,一个学号 我们需要对结构体数组进行排序 按分数的升序或者降序来排列; 具体简单的实例如下: #include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; struct data{ //结构体 string name; int num; }; bool cmp(data x,data y) //自己写的比较函数 { return x.num>y.num; // 降序排列 } int main() { vector<data> l; data s; s.name="a1"; s.num=4; l.push_back(s); s.name="a2"; s.num=5; l.push_back(s); s.name="a3"; s.num=9; l.push_back(s); s.name="a4"; s.num=1; l.push_back(s); vector<data>::iterator i,iend; iend=l.end(); for(i=l.begin(); i!=iend; i++) { cout<<(*i).num<<" "<<(*i).name<<endl; } // 排序之前输出一次 sort(l.begin(),l.end(),cmp); for(i=l.begin(); i!=iend; i++) { cout<<(*i).num<<" "<<(*i).name<<endl; } //排序之后输出一次 }