您的位置:首页 > 其它

vector之排序

2012-08-19 19:19 344 查看
vector中如果元素是struct类型或者class类型,若要对其中某个类型的元素进行排序,具体代码的编写如下所示:

#include <iostream>
#include <vector>
using namespace std;

struct Record
{
string name;
char add[24];
};

struct Cmp_by_name //为排序编写的结构体
{
bool operator()(const Record &a, const Record &b)
{
return a.name < b.name;
}
};

int main(void)
{
vector<Record > vr;
vector<Record > ::iterator i;
Record rd;
rd.name = "geyuting";
strcpy(rd.add, "suzhou");
vr.push_back(rd);
rd.name = "chenhongliang";
strcpy(rd.add, "huaining");
vr.push_back(rd);
i=vr.begin();
sort(vr.begin(), vr.end(), Cmp_by_name()); //排序函数,调用Cmp_by_name
while(i != vr.end())
{
cout<<(*i).name<<endl;
i++;
}
return 1;
}

上例中是对name进行排序,如果要对add进行排序,也如上类似
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: