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进行排序,也如上类似
#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进行排序,也如上类似
相关文章推荐
- STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase
- vector中sort排序(解决char类型数据无法排序的问题)
- Vector容器排序
- 如何利用C++ vector的sort算法对元素是自定义类型进行排序
- std::vector的排序
- 对vector等STL标准容器进行排序操作
- vector sort结构体排序要点
- vector中struct等自定义结构排序
- ZOJ 3770 : Ranking System (第14届浙江大学程序设计竞赛 D) - 结构体排序,vector
- std::vector的排序
- vector 排序 去重 反向输出
- 对vector等STL标准容器进行排序操作
- C++标准库 std::sort vector排序
- C++中对 vector 进行sort()排序 对vector 结构体 部分排序
- 对vector等STL标准容器进行排序操作
- vector 排序
- Java用vector容器排序
- 对vector中的数据排序
- STL vector+sort排序和multiset/multimap排序比较
- 对vector等STL标准容器进行排序操作