序列化boost :: uuids需要付出代价。使用它们索引到vector / unordered_map需要额外的散列。 boost :: uuids是理想的数据结构使用的理想用例是什么?
答案 0 :(得分:0)
如果您想要在时间和存储系统中保持稳定的ID,则UUID非常有用。
想象一下,有两个数据库,每个数据库都有自动生成的ID。
如果通过从0开始递增整数值来生成ID,那么合并它们将是一件令人头疼的事。
如果所有相关ID都是UUID,那么合并它们将是轻而易举的。
同样,将大量数据分发给离线记录操作的外部团队,然后将这些操作重新应用于原始数据,这对UUID来说要容易得多 - 即使元素之间的关系已经改变,新元素已经创建等等。
UUID对于通用“识别”(不身份验证/授权!)也很方便 - 就像驱动程序版本,插件ID等一样。考虑检测MSI是对特定已安装软件的更新封装
一般来说,我不会将UUID评为任何数据结构的特征。我认为它是设计基础设施的工具。它在持久性,交换的层面上发挥作用,而不是在算法和内存操作的层面上发挥作用。