如何在C / C ++中对日期数组进行排序?

假设我们有一个日期数组。在这里,我们将看到如何使用C或C ++代码进行排序。日期存储在一个类中(结构也可以在C中使用)。我们将使用C ++ STL的sort函数。为了比较日期,我们必须编写自己的compare函数,该函数将在sort函数中使用。让我们看一下示例以获得更好的视图。

示例

#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

以上是 如何在C / C ++中对日期数组进行排序? 的全部内容, 来源链接: utcz.com/z/331580.html

回到顶部