У меня есть следующий код
#include <bits/stdc++.h>
using namespace std;
int main () {
pair<int, int> p[4];
p[0] = pair<int, int>(5, 2);
p[1] = pair<int, int>(40, -2);
p[2] = pair<int, int>(-3, 2);
p[3] = pair<int, int>(4, 45);
auto print_pairii = [](pair<int, int> pp[]) {
for (int i = 0; i < 4; i++) {
cout << pp[i].first << " ";
}
cout << endl;
};
print_pairii(p);
sort(p, p + 4);
print_pairii(p);
return 0;
}
Первый print_pairii
показывает 5 40 -3 4
. После сортировки массива пары, print_pairii
показывает -3 4 5 40
, что означает, что сортировка была выполнена на основе первого элемента пары.
Почему это происходит вместо основания второго элемент? Как сортировка работает в этом смысле?