#include<stdio.h>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
typedef struct rect
{
string name;
int id;
int length;
int width;
//对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。
bool operator< (const rect &a) const
{
if(id!=a.id)
return id<a.id;
else
{
if(length!=a.length)
return length<a.length;
else
return width<a.width;
}
}
}Rect;
int main()
{
vector<Rect> vec;
Rect rect;
rect.name="jeff";
rect.id=4;
rect.length=7;
rect.width=8;
vec.push_back(rect);
rect.name="li";
rect.id=4;
rect.length=5;
rect.width=6;
vec.push_back(rect);
rect.name="zhang";
rect.id=1;
rect.length=2;
rect.width=3;
vec.push_back(rect);
rect.name="wang";
rect.id=4;
rect.length=7;
rect.width=8;
vec.push_back(rect);
cout << "排序前"<<endl;
for(auto it=vec.begin(); it != vec.end(); it++){
cout<<(*it).name<<' '<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl;
}
sort(vec.begin(),vec.end());
cout << "排序后"<<endl;
for(auto it=vec.begin(); it != vec.end(); it++){
cout<<(*it).name<<' '<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl;
}
return 0;
}
C++ std::vector 自定义排序
原创
©著作权归作者所有:来自51CTO博客作者软件工程小施同学的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:未来智能合约平台的展望

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Ascend C 自定义PRelu算子
手把手将你如何基于工程描述文件自动生成单算子工程代码目录,并基于Ascend C开发自定义算子PReLU。
自定义 开发者 Ascend C PRelu算子 昇腾 -
关于vector中自定义sort排序规则
针对vector中自定义类型的sort排序
vector sort 针对自定义结 -
C++命名(自定义)
1、自定义函数 void GetName(); 2、布尔型变量 BOOL ISOPEN;
自定义函数 html 其他