如何在C++中用STL按照结构体中某一个元素进行排序?!
比如现在有一个typedefstruct{stringname;doublescore;}stu;然后我有一个vector<stu>demo;我如何将demo中的元素按照...
比如现在有一个
typedef struct {
string name;
double score;
} stu;
然后我有一个vector<stu> demo;
我如何将demo中的元素按照score从大到小排序?
注意,我想用<algorithm>里面的sort函数!!
我试过sort(demo.begin(), demo.end());但是它老提示在结构体定义的地方出错!
而且我看网上有说要重载运算符?我重载也不对啊。。 展开
typedef struct {
string name;
double score;
} stu;
然后我有一个vector<stu> demo;
我如何将demo中的元素按照score从大到小排序?
注意,我想用<algorithm>里面的sort函数!!
我试过sort(demo.begin(), demo.end());但是它老提示在结构体定义的地方出错!
而且我看网上有说要重载运算符?我重载也不对啊。。 展开
2个回答
展开全部
sort( RandomIt first, RandomIt last, Compare comp )
其中comp函数写成
bool cmp(const stu &a, const stu &b){
return a.score<b.score?1:(a.score==b.score)0:-1;
}
其中comp函数写成
bool cmp(const stu &a, const stu &b){
return a.score<b.score?1:(a.score==b.score)0:-1;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询