0

我目前正在从事 C++ 学校作业,我有 3 种对象类型。客户、租用和旅游。客户喜欢参观和雇用。要求是根据用户对数据结构类型的选择,使用 Array、Vector、Map 和 List 来保存这些信息。有包含 1000 条记录的数据文件,应用程序将读取它们并创建必要的对象。例如,如果用户选择向量,它将创建 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。

谢谢你。

4

1 回答 1

1

通用接口是“STL 容器”。这不是 C++ 中定义的强接口,而是一个可以依赖所有 STL 容器来实现的概念。因此,您可以使用模板编写适用于所有模板的代码。

(请注意,地图和向量的不同之处在于地图std::pair<>的元素类型。在实践中,这可以通过为您的搜索功能提供“身份”和“地图”选择器来解决。)

于 2013-10-10T22:09:27.877 回答