首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在结构中记录前5个值

如何在结构中记录前5个值
EN

Stack Overflow用户
提问于 2015-11-15 12:45:45
回答 1查看 51关注 0票数 2

下面我有一个结构体

代码语言:javascript
复制
struct Income
{
    string firstname;
    string lastname;
    double income;
};
struct World
{
    Income people[100];
} myWorld;

我希望通过名字和姓氏打印并显示收入最高的前5名。

有什么好方法可以对收入进行排序和阅读,并按姓名打印收入前5名的收入?

假设我在这个结构中有100个值。

EN

回答 1

Stack Overflow用户

发布于 2015-11-15 12:54:37

您希望使用接受比较函数的std::sort,如下所示:

代码语言:javascript
复制
 #include <algorithm>
 using namespace std;

 vector<Income> v;
 for (auto i : myWorld.people) {
    v.push_back(i);
}

 sort(v.begin(), v.end(), [](const Income& i, const Income& j) { return i.income > j.income; });

然后只需打印前5个代码,就像这样:

代码语言:javascript
复制
for (size_t i = 0; i < 5;  ++i) {
    cout << v[i].firstname << " " << v[i].lastname << endl;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33716518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档