Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 跨系统生成唯一数的算法_C++_Algorithm - Fatal编程技术网

C++ 跨系统生成唯一数的算法

C++ 跨系统生成唯一数的算法,c++,algorithm,C++,Algorithm,我有问题,我必须在整个系统中生成唯一的数字。例如,应用程序“X”通过使用一些输入生成值“A”,该值“A”将被其他应用程序用作输入以生成其他值“B” “A”和“B”这两个值稍后将保存在KDB中。这样做的目的是确定“A”的哪个值触发了“B”的生成值A的生成速度非常快,因此我正在寻找快速且不会影响应用程序“X”性能的算法。您需要的是UUID。看见它们通常基于MAC地址、时间戳、哈希和随机性。他们的理论意图是全球独一无二。根据平台的不同,通常会有内置函数来生成它们。如果有必要,我可以在不使用手机的情况下

我有问题,我必须在整个系统中生成唯一的数字。例如,应用程序“X”通过使用一些输入生成值“A”,该值“A”将被其他应用程序用作输入以生成其他值“B”


“A”和“B”这两个值稍后将保存在KDB中。这样做的目的是确定“A”的哪个值触发了“B”的生成值A的生成速度非常快,因此我正在寻找快速且不会影响应用程序“X”性能的算法。

您需要的是UUID。看见它们通常基于MAC地址、时间戳、哈希和随机性。他们的理论意图是全球独一无二。根据平台的不同,通常会有内置函数来生成它们。如果有必要,我可以在不使用手机的情况下对此进行更多的扩展,但从那里开始

你可能会不时遇到他们,可以给你一些例子

也就是说,如果要将它们插入数据库,另一个要研究的策略是使用数据库自动分配的主键ID号。这并不总是可能的,因为您必须先存储它们才能获得分配的ID,但从理论上讲,这对于您的应用程序来说是正确的

你也可以自己滚动,尽管有很多警告。例如,应用程序启动的时间戳与一些内部计数器连接在一起。只需注意碰撞风险,即使不太可能,例如两个应用程序同时启动,或系统时钟不正确。考虑到其他更可靠的策略,我不会考虑这种方法的严重使用。 无论您使用什么,我建议最终也将其用作数据库中的主键。总体而言,它将简化您的工作,并且在数据库中有两个唯一的ID(例如UUID加上自动生成的主键)将使您的数据库反规范化一点()