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

What is the alternative to Tagged Data of scheme in C++

本文关键字:方案 数据 什么 C++      更新时间:2023-10-16

我一直在尝试在 SICP 中解决这个问题。该链接还有一个解决方案。链接到 SICP 中问题的基本概念

这是问题描述。

Insatiable Enterprises, Inc.是一家高度分散的企业集团 公司由位于 遍布世界各地。该公司的计算机设施刚刚建成 通过巧妙的网络接口方案互连 使整个网络在任何用户看来都是一台计算机。 贪得无厌的总裁,在她第一次尝试利用 从部门文件中提取管理信息的网络, 沮丧地发现,尽管所有除法文件都有 在方案中作为数据结构实现,特定数据 使用的结构因部门而异。分案会议 经理们匆忙地被要求寻找整合的战略 文件将满足总部的需求,同时保留 各司的现有自治权。

展示如何通过数据导向实施此类策略 编程。例如,假设每个部门的人员 记录由单个文件组成,该文件包含一组记录 键入员工姓名。集合的结构从 师到师。此外,每个员工的记录本身就是一个 包含 的集合(结构因部门而异( 在地址和工资等标识符下键入的信息。在 特定:

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

二. 为总部实施一个获取工资的程序,返回 来自任何部门的给定员工记录的工资信息 人事档案。记录应该如何结构才能使 这个操作有效吗?

三. 为总部实施查找员工记录程序。这 应该在所有部门的文件中搜索给定的记录 员工并返回记录。假设此过程需要 参数员工的姓名和所有部门文件的列表。

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

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

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

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

在我看来,"标记数据"是一个抽象的概念。您可以选择任何表示形式来实现此抽象。例如,您可以定义自己的"放置"和"获取"方法。