如何在 C/C++ 中对日期数组进行排序?
假设我们有一个日期数组。此处我们将了解如何使用 C 或 C++ 代码对其进行排序。这些日期存储在一个类中(C 中也可以使用结构)。我们将使用 C++ STL 的排序函数。为了比较日期,我们必须编写要在排序函数中使用的自定义比较函数。让我们看一看示例以便更好地理解。
示例
#include<iostream>
#include<iostream>
#include<algorithm>
using namespace std;
class Date {
public:
int d, m, y;
};
bool compare(const Date &date1, const Date &date2){
if (date1.y < date2.y)
return true;
if (date1.y == date2.y && date1.m < date2.m)
return true;
if (date1.y == date2.y && date1.m == date2.m && date1.d < date2.d)
return true;
return false;
}
void sortDateArray(Date arr[], int n) {
sort(arr, arr+n, compare);
}
int main() {
Date arr[] = {{20, 1, 2017},
{25, 3, 2010},
{ 3, 12, 1956},
{18, 10, 1982},
{19, 4, 2011},
{ 9, 7, 2013}};
int n = sizeof(arr)/sizeof(arr[0]);
sortDateArray(arr, n);
cout << "Sorted dates are" << endl;
for (int i=0; i<n; i++) {
cout << arr[i].d << " " << arr[i].m << " " << arr[i].y << endl;
}
}输出
Sorted dates are 3 12 1956 18 10 1982 25 3 2010 19 4 2011 9 7 2013 20 1 2017
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP