Двойная сортировка данных C++ с несколькими элементами

У меня есть несколько записей данных, содержащих следующую информацию: идентификационный номер имя1 Дата name2

Это можно поместить в такую ​​структуру:

struct entry {
  int id_number;
  string name1;
  int date;
  string name2;
}

В моих данных много таких записей, и я хотел бы их отсортировать. Во-первых, я хочу отсортировать в алфавитном порядке по имени1, а затем отсортировать по дате. Однако сортировка по дате является подмножеством алфавитной сортировки, например. если у меня есть две записи с одинаковым именем1, я хочу упорядочить эти записи по дате. Кроме того, при сортировке я хочу, чтобы элементы записи оставались вместе, поэтому все четыре значения идут вместе.

Мои вопросы таковы:

1) Какой тип структуры данных я должен использовать для хранения этих данных, чтобы я мог сохранить набор из четырех элементов вместе, когда я сортирую любой из них?

2) Как быстрее всего выполнить эту сортировку (с точки зрения количества времени, необходимого для написания кода). В идеале я хочу использовать что-то вроде сортировки в algorithms.h, так как она уже встроена.

3) Есть ли в STL какая-то встроенная структура данных, которая может эффективно обрабатывать двойную сортировку, которую я описал?

6
задан user788171 1 April 2012 в 04:21
поделиться