Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm cách nào để sắp xếp một mảng ngày tháng trong C / C ++?

Giả sử chúng ta có một mảng ngày tháng. Ở đây chúng ta sẽ xem cách sắp xếp sau đó sử dụng mã C hoặc C ++. Ngày tháng được lưu trữ trong một lớp (struct cũng có thể được sử dụng trong C). Chúng tôi sẽ sử dụng chức năng sắp xếp của C ++ STL. Để so sánh ngày tháng, chúng ta phải viết hàm so sánh của riêng mình sẽ được sử dụng trong hàm sắp xếp. Hãy cùng chúng tôi xem ví dụ để có cái nhìn rõ hơn.

Ví dụ

#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;
   }
}

Đầu ra

Sorted dates are
3 12 1956
18 10 1982
25 3 2010
19 4 2011
9 7 2013
20 1 2017