对数组进行排序并匹配其他数组
sorting array and matching other array
我正在尝试编写一个程序,在其中写入人员的信息,例如:姓名,分钟和秒。我需要按时间对人进行分类。我不明白如何对分钟进行排序并且不会丢失其他数组序列顺序 - 名称和秒。他们只是站在原地。
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct people{
int min[6], sec[6];
string name[6];
};
int main()
{
int temp;
people z;
for(int i=0; i<6; i++)
{
cin>>z.name[i];
cin>>z.min[i];
cin>>z.sec[i];
}
sort(z.min,z.min+6);
cout<<endl;
for(int i=0; i<6; i++)
{
cout<<z.name[i]<<" "<<z.min[i]<<" "<<z.sec[i]<<endl;
}
return 0;
}
/*Input for example is :
John 6 15
Liza 9 59
Michael 19 45
Kira 2 37
Thomas 5 41
Justas 13 24
/*
正如一些程序员说的那样,你必须有一个结构数组而不是数组结构。但即使在那之后,你也可能会遇到问题,因为你必须在sort
函数中填写一个称为函子/比较器的参数。一种更简单的方法是,如果您使用pair<int, pair<string, int> z[6]
,然后在将所需值输入数组后直接使用sort(z, z+6)
。这是因为排序函数可以根据对象的第一个字段(int
)按升序对对象数组进行排序。要访问数组中每个三元组的字段,您需要对第一个int
字段使用z[i].first
,对第二个字符串字段使用z[i].second.first
,对最后一个 int 字段使用z[i].second.second
。 请注意,比较器或函子是一种帮助定义两个对象之间的排序的方法,这两个对象不是string
或int
或任何其他标准对象。有关详细信息,请参阅以下内容:https://www.geeksforgeeks.org/functors-in-cpp/和 https://www.geeksforgeeks.org/sorting-a-vector-in-c/。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 还有其他方法可以在数组中写入多维数组吗?
- 为什么在某些编译器中可以声明像int myarr[noconstant]这样的数组;而不是在其他编译器中?
- 严格的别名是否会阻止您通过其他类型写入 char 数组?
- Sizeof返回的是指针大小,而不是数组大小.有其他方法可以找到尺寸吗
- 将十六进制字符数组存储在字节数组中,而无需更改为 ASCII 或其他任何东西
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 在 C++ 中使用递归填充 D2 数组,有时工作正常,其他时会引发异常
- 使用类的其他成员变量定义类的成员变量数组
- 对数组进行排序并匹配其他数组
- 对相同其他数组旁边的数组进行排序
- 对数组进行排序并匹配其他数组并得到错误
- 将 2D 数组设置为函数,并根据需要在其他地方调用它
- C++ 在构造函数中传递数组而不在其他地方定义它们
- 我如何在课堂中使用其他类别的数组
- 使用传入数组初始化其他数组
- 我无法将二维数组的两个元素的差异分配给C++中其他数组的元素?
- 未签名的char数组到stl ::映射或其他容器中的键
- 是否可以在函数调用中构造和传递数组/其他容器