C ++

时间:2018-09-06 05:58:30

标签: c++ data-structures

在构建虚拟网络功能(VNF)时,我遇到一种情况,我需要存储一个类或struct对象,任何与该特定对象相关的有效密钥之外的人都可以访问该类或结构对象宾语。

正式是这里的要求:

  1. 我们需要能够使用多个键来访问single-data-blob。密钥可以是“空”或具有有效的“名称/值”。
  2. 考虑将与数据绑定的所有键,这些键将识别数据。如果全部为空,则一旦输入任何<key1, data>作为输入,就插入数据。 如果出现另一个key2用于相同数据,则将该key2与现有<key1, data>绑定。

例如,如果person_data是一个对象。然后,可以将唯一的phone number或唯一的house number作为键。这些键可能是person-data类/结构的成员变量,也可能不是。如果它们不是成员变量,那么作为程序员,我们可能已经知道相关的键。我们应该使用键person_dataphone number获得house number对象,即我们不需要同时使用所有键来检索对象。

是否存在任何现有的C ++实用程序?总体上或至少在NFV(网络功能虚拟化)中,这似乎是一个非常有效的用例。

谢谢!

1 个答案:

答案 0 :(得分:0)

似乎您对“键”和“数据”的定义颠倒了。

您的示例显示了将两个“键”归为一个“数据”值。在“计算机科学”中,您进行分组的值称为键。键当然可以与两个数据值关联。

例如,对于flask test对象,字段person_datahouse_number将是数据成员。他们当然不是钥匙。门牌号码不是唯一的,不是每个人都有电话号码。

因此,您只能使用简单的phone_number。如果您确实有一个适合个人的钥匙(一个唯一标识每个人的值),则可以按此排序并拥有一个std::vector<person_data>