У меня есть простой код C ++, написанный для понимания использования функции сортировки в пользовательских типах данных классов для сортировки членов данных класса.
Но это только сортировка массива переменной b в классе.Потому что ранее отсортированный массив переменной a также нарушается при сортировке b.
#include <iostream>
#include <cstring>
using namespace std;
class Entry
{
public:
int a, b;
};
bool compare1(Entry e1, Entry e2)
{
if (e1. a > e2. a) return false;
return true;
}
bool compare2( Entry e1, Entry e2)
{
if (e1. b > e2. b) return false;
return true;
}
int main()
{
int i;
vector<Entry> array(4);
array[0]. a =5 , array[0]. b =8 ;
array[1]. a =10 , array[1]. b =4 ;
array[2]. a =3 , array[2]. b =2 ;
array[3]. a =1 , array[3]. b =12 ;
sort(array.begin(), array.end(), compare1);
sort(array.begin(), array.end(), compare2);
cout << "sorted:" << endl;
for (i = 0; i< 4; i++)
cout << array[i]. a << " " << array[i].b << endl;
}
Вывод, который я получаю, выглядит следующим образом:
sorted:
3 2
10 4
5 8
1 12
Как отсортировать оба массива элементов данных - a, b?