Итак, как сказал один программист, чувак, у вас должен быть массив структур, а не структура массивов.Но даже после этого вы, вероятно, столкнетесь с проблемами, поскольку вам придется заполнить аргумент под названием функтор / компаратор в функции sort
.гораздо более простой способ сделать это, если вы использовали pair<int, pair<string, int> z[6]
, а затем непосредственно использовали sort(z, z+6)
после ввода требуемых значений в ваш массив.Это связано с тем, что функция сортировки может сортировать массив парных объектов на основе первого поля (int
) объекта в порядке возрастания. Чтобы получить доступ к полям каждого триплета в массиве, вам нужно использовать z[i].first
дляпервое int
поле, z[i].second.first
для второго строкового поля и z[i].second.second
для последнего целевого поля.Обратите внимание, что компаратор или функтор - это метод, помогающий определить порядок между двумя объектами, которые не являются string
, int
или любыми другими стандартными объектами.Смотрите их для получения дополнительной информации: https://www.geeksforgeeks.org/functors-in-cpp/ и https://www.geeksforgeeks.org/sorting-a-vector-in-c/.