C ++中标记数据的替代方法是什么

时间:2016-07-22 08:00:47

标签: c++ scheme c++14 anonymous-function sicp

我一直在努力解决SICP中的this问题。 该链接也有一个解决方案。 Link to the problem's underlying concept in SICP

这是问题描述。

  

Insatiable Enterprises,Inc。是一家高度分散的企业集团   公司由大量独立部门组成   世界各地的。该公司的计算机设施刚刚开始   通过巧妙的网络接口方案互连   使整个网络对任何用户显示为一台计算机。   贪得无厌的总统,在她第一次尝试利用的能力   网络从分区文件中提取管理信息,   沮丧地发现,虽然所有的分区文件都有   已被实现为Scheme中的数据结构,即特定数据   使用的结构因分部而异。分裂会议   管理人员匆忙被要求寻找一种整合战略的战略   文件将满足总部的需求,同时保留   现有的各部门自治权。

     

展示如何通过数据导向实施此策略   节目。举个例子,假设每个师的人员   记录由单个文件组成,其中包含一组记录   以员工的名字为中心。该集的结构不同于   分裂。此外,每个员工的记录本身就是一个   包含的集合(以不同于分部的结构)   在地址和工资等标识符下键入的信息。在   特别是:

     

一个。为总部实施一个获取记录的程序来检索   从指定的人事档案中指定员工​​的记录。该   程序应适用于任何部门的档案。解释如何   各个部门的文件应该是结构化的。特别是什么   必须提供类型信息吗?

     

湾为总部实施一个返回工资的获得工资程序   来自任何部门的特定员工记录的薪资信息   人事档案。应如何构建记录以便制作   这个操作有效吗?

     

℃。为总部实施查找 - 员工记录程序。这个   应搜索所有部门的文件以获取给定记录   员工并返回记录。假设此过程采用as   参数是员工的姓名和所有部门文件的列表。

     

d。当Insatiable接管一家新公司时,必须做出哪些改变   为了将新的人事信息纳入其中   中央系统?

问题的概念围绕着标记数据。 这个问题的解决方案显然使用get和put方法,这些方法使用通过使用对实现的基础表 这个问题在第2章中,作者也明确指出表将在第3章中介绍。应该假设get和put的方法存在[我使用guile方案来实现脚本]。

话虽如此,我想知道如何使用STL容器和算法在C ++ 1y中实现类似于标记数据的概念。此外,开发一个与底层表等效的类,并在C ++ 1y中完全操作它以适应标记数据。

P.S。代码不是必需的。在C ++ 1y中可视化问题的概念,这样我就可以尝试使用C ++ 1y的lamda函数来操作数据来补偿Scheme的函数式编程概念。

1 个答案:

答案 0 :(得分:0)

在我看来,“标记数据”是一个抽象的概念。您可以选择任何表示来实现此抽象。例如,您可以定义自己的“Put”和“Get”方法。