C/C++

Программирование, структуры, списки

Можно ли создать структуру и передать полученные значения (имя пол возраст и тп.) в список, где их отсортировать и вывести?
#include <algorithm>
#include <iostream>
#include <array>
using namespace std;
struct Any {
int x;
int y;
Any() : x(0), y(0) {}
Any(int x, int y) : x(x), y(y) {}
friend bool operator<(const Any& a, const Any& b) {
if (a.x < b.x) return true;
if (a.x == b.x && a.y < b.y) return true;
return false;
}
friend bool operator>(const Any& a, const Any& b) {
if (a.x > b.x) return true;
if (a.x == b.x && a.y > b.y) return true;
return false;
}
friend ostream& operator<<(ostream& out, const Any& any) {
return out << any.x << ' ' << any.y;
}
};
void show(const array<Any, 5> box) {
for (const auto& x : box) cout << x << '\n';
puts("");
}
int main() {
array<Any, 5> box{
Any{ 5, 3 },
Any{ 8, 2 },
Any{ 5, 4 },
Any{ 1, 9 },
Any{ 8, 1 }
};
show(box);
sort(box.begin(), box.end());
show(box);
sort(box.begin(), box.end(), greater<Any>());
show(box);
auto less_second = [](const Any& a, const Any& b) { return a.y < b.y; };
sort(box.begin(), box.end(), less_second);
show(box);
auto greater_second = [](const Any& a, const Any& b) { return a.y > b.y; };
sort(box.begin(), box.end(), greater_second);
show(box);
}

Результаты вывода
До сортировки

5 3
8 2
5 4
1 9
8 1

Сортировка по первому значению с применением встроенного оператора «меньше»

1 9
5 3
5 4
8 1
8 2

Сортировка по первому значению с применением встроенного оператора «больше»

8 2
8 1
5 4
5 3
1 9

Сортировка по второму значению с применением лямбда-фукции по возрастанию

8 1
8 2
5 3
5 4
1 9

Сортировка по второму значению с применением лямбда-фукции по убыванию

1 9
5 4
5 3
8 2
8 1
ВЧ
Виктор Чуданов
76 094
Лучший ответ
Витя Михеев вы просто золотце! :)