C++ 如何在struct中记录前5个值
我在下面有一个结构C++ 如何在struct中记录前5个值,c++,arrays,algorithm,struct,C++,Arrays,Algorithm,Struct,我在下面有一个结构 struct Income { string firstname; string lastname; double income; }; struct World { Income people[100]; } myWorld; 我希望打印并显示按名字和姓氏排列的前五名收入 有什么好方法可以对收入进行分类和阅读,并按姓名打印收入前5名的人 假设我在这个结构中有100个值。您想使用std::sort,它接受一个比较函数,比如: #includ
struct Income
{
string firstname;
string lastname;
double income;
};
struct World
{
Income people[100];
} myWorld;
我希望打印并显示按名字和姓氏排列的前五名收入
有什么好方法可以对收入进行分类和阅读,并按姓名打印收入前5名的人
假设我在这个结构中有100个值。您想使用
std::sort
,它接受一个比较函数,比如:
#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; });
for (size_t i = 0; i < 5; ++i) {
cout << v[i].firstname << " " << v[i].lastname << endl;
}
#包括
使用名称空间std;
向量v;
用于(自动i:myWorld.people){
v、 推回(i);
}
排序(v.begin(),v.end(),[](const-Income&i,const-Income&j){return i.Income>j.Income;});
然后只需打印前5个,如:
#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; });
for (size_t i = 0; i < 5; ++i) {
cout << v[i].firstname << " " << v[i].lastname << endl;
}
(大小i=0;i<5;++i)的{
是否可以使用自定义比较器进行std::partial_sort
?您需要#include
您需要使用名称空间std;
是的,我包括了算法,但仍然存在这个问题。我也使用了“名称空间std;”