Поиск данных в массиве, векторе, на карте и в списке

0

В настоящее время я работаю над C++ школьным заданием, и у меня есть 3 типа объектов. Клиент, прокат и тур. Заказчику нравится путешествовать и снимать. Требование состоит в том, чтобы использовать Array, Vector, Map и List для хранения этой информации на основе выбора пользователем типа структуры данных. Есть файлы данных с тысячами записей, и приложение будет их читать и создавать необходимые объекты. Например, если пользователь выбирает вектор, он будет создавать 3 вектора, содержащие вышеуказанные объекты. Затем на них будут выполнены следующие операции.

  • загрузите большие массивы данных, которые мы вам предоставили. Если структура данных, которую вы используете, поддерживает сортировку, ее следует сортировать по описанию.
  • Подготовьте список клиентов, которые заказали тур, который состоится до конца года
  • Подготовьте список туров, забронированных клиентами, которые должны нам более 2000 долларов США, отсортированные по дате их счета
  • Подготовьте список наем клиентов, чьи почтовые индексы начинаются с 5

В моем основном файле заголовка приложения есть следующее.

частный:

string structureType;

Customer** customerListArray;
Tour** tourListArray;
EquipmentHire** equipmentsListArray;

vector<Customer *> customerListVector;
vector<Tour *> tourListVector;
vector<EquipmentHire *> equipmentsListVector;

std::map<string, Customer*> customerListMap;
std::map<string, Tour*> tourListMap;
std::map<string, EquipmentHire*> equipmentsListMap;

list<Customer *> customerListList;
list<Tour *> tourListList;
list<EquipmentHire *> equipmentsListList;

Затем я загружаю данные на эти объекты на основе выбора пользователя. Однако мой вопрос: нужно ли мне писать разные функции для каждого типа структур данных для преформы над операциями или есть общий интерфейс, который я могу использовать для всех из них?

Знания моего C++ очень ограничены, и необходимо использовать C++ 98.

Спасибо.

Теги:
arrays
list
vector
map

1 ответ

0
Лучший ответ

Общий интерфейс - "STL-контейнер". Это не сильный интерфейс, определенный в C++, но является понятием, что вы можете полагаться на все контейнеры STL для реализации. Поэтому вы можете использовать шаблоны для написания кода один раз, который будет применяться ко всем из них.

(Обратите внимание, что карты и векторы отличаются тем, что в картах есть std::pair<>. На практике это можно обойти, предоставив селекторам "identity" и "map" для вашей функции поиска.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню