如何在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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
百度网友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

提交
取消

辅 助

模 式