在构建虚拟网络功能(VNF)时,我遇到一种情况,我需要存储一个类或struct对象,任何与该特定对象相关的有效密钥之外的人都可以访问该类或结构对象宾语。
正式是这里的要求:
single-data-blob
。密钥可以是“空”或具有有效的“名称/值”。<key1, data>
作为输入,就插入数据。
如果出现另一个key2
用于相同数据,则将该key2
与现有<key1, data>
绑定。例如,如果person_data
是一个对象。然后,可以将唯一的phone number
或唯一的house number
作为键。这些键可能是person-data
类/结构的成员变量,也可能不是。如果它们不是成员变量,那么作为程序员,我们可能已经知道相关的键。我们应该使用键person_data
或phone number
获得house number
对象,即我们不需要同时使用所有键来检索对象。
是否存在任何现有的C ++实用程序?总体上或至少在NFV(网络功能虚拟化)中,这似乎是一个非常有效的用例。
谢谢!
答案 0 :(得分:0)
似乎您对“键”和“数据”的定义颠倒了。
您的示例显示了将两个“键”归为一个“数据”值。在“计算机科学”中,您进行分组的值称为键。键当然可以与两个数据值关联。
例如,对于flask test
对象,字段person_data
和house_number
将是数据成员。他们当然不是钥匙。门牌号码不是唯一的,不是每个人都有电话号码。
因此,您只能使用简单的phone_number
。如果您确实有一个适合个人的钥匙(一个唯一标识每个人的值),则可以按此排序并拥有一个std::vector<person_data>
。