我目前正在从事C ++学校作业,我有3种对象类型。客户,租用和旅游。客户喜欢旅游和租用。要求是使用Array,Vector,Map和List来根据用户对数据结构类型的选择来保存此信息。有数千个记录的数据文件,应用程序将读取它们并创建必要的对象。例如,如果用户选择向量,它将创建包含上述对象的3个向量。然后将对它们进行以下操作。
我在主应用程序头文件中有以下内容。
私人:
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 :(得分:0)
通用界面是&#34; STL容器。&#34;这不是C ++中定义的强大接口,但是您可以依赖所有STL容器来实现它。因此,您可以使用模板编写适用于所有模板的代码。
(请注意,地图和向量的不同之处在于地图有std::pair<>
作为其元素类型。在实践中,这可以通过提供&#34; identity&#34;和#34; map&#34;来解决。选择器到您的搜索功能。)