2013-10-10 1 views
0

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

  • Нагрузки в больших наборах данных, которые мы предоставили для вас. Если структура данных вы используете сортировку носителей, ее следует отсортировать по описанию .
  • Подготовьте список клиентов, чьи забронировал тур, который будет происходить до конца года
  • Подготовить список туров забронированы клиентами, которые задолжали нам более чем $ 2000, отсортировано по дате их счета из-за
  • Подготовить список HIRES, по клиентам, почтовые индексы начинаются с 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.

спасибо.

ответ

0

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

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

Смежные вопросы