2013-10-10 35 views
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。

谢谢。

回答

0

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

(请注意,地图和矢量的区别在于地图有std::pair<>作为其元素的类型。在实践中,这可以通过提供“身份”和选择“映射”到你的搜索功能周围的工作。)