У меня есть несколько записей данных, содержащих следующую информацию: идентификационный номер имя1 Дата name2
Это можно поместить в такую структуру:
struct entry {
int id_number;
string name1;
int date;
string name2;
}
В моих данных много таких записей, и я хотел бы их отсортировать. Во-первых, я хочу отсортировать в алфавитном порядке по имени1, а затем отсортировать по дате. Однако сортировка по дате является подмножеством алфавитной сортировки, например. если у меня есть две записи с одинаковым именем1, я хочу упорядочить эти записи по дате. Кроме того, при сортировке я хочу, чтобы элементы записи оставались вместе, поэтому все четыре значения идут вместе.
Мои вопросы таковы:
1) Какой тип структуры данных я должен использовать для хранения этих данных, чтобы я мог сохранить набор из четырех элементов вместе, когда я сортирую любой из них?
2) Как быстрее всего выполнить эту сортировку (с точки зрения количества времени, необходимого для написания кода). В идеале я хочу использовать что-то вроде сортировки в algorithms.h, так как она уже встроена.
3) Есть ли в STL какая-то встроенная структура данных, которая может эффективно обрабатывать двойную сортировку, которую я описал?