如何在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());但是它老提示在结构体定义的地方出错!
而且我看网上有说要重载运算符?我重载也不对啊。。
展开
 我来答
kenyang_111s
推荐于2016-03-18 · 超过19用户采纳过TA的回答
知道答主
回答量:44
采纳率:100%
帮助的人:33.7万
展开全部
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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b1b2aecb0
2012-10-27 · 超过12用户采纳过TA的回答
知道答主
回答量:58
采纳率:100%
帮助的人:23.2万
展开全部
typedef struct {
string name;

double score;

bool operator < (const stu& rhs ) const
{
return score< rhs.score;
}

} stu;

sort(demo.begin(), demo.end()) ;

重载一个小于运算符
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式