数组,矢量,地图和列表数据搜索

时间:2013-10-10 22:02:19

标签: c++ arrays list vector map

我目前正在从事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。

谢谢。

1 个答案:

答案 0 :(得分:0)

通用界面是&#34; STL容器。&#34;这不是C ++中定义的强大接口,但是您可以依赖所有STL容器来实现它。因此,您可以使用模板编写适用于所有模板的代码。

(请注意,地图和向量的不同之处在于地图有std::pair<>作为其元素类型。在实践中,这可以通过提供&#34; identity&#34;和#34; map&#34;来解决。选择器到您的搜索功能。)