【问题标题】:To generate random UUID which is 2 Digit Long生成 2 位长的随机 UUID
【发布时间】:2012-05-21 06:32:25
【问题描述】:

我正在使用 Boost Random 生成器来生成随机 UUID。我现在生成的随机 UUID 很长。相反,我想生成一个 2 位数的 UUID,例如:“Dz”

我现在使用的代码行是

std::string strAK = to_string(boost::uuids::random_generator()());

如何修改此代码并生成一个 2 位长的 UUID。

【问题讨论】:

  • UUID 这么长是有原因的.....
  • 如果必须的话,生成一个两位数长的东西。只是不要称它为 UUID,也不要期望避免冲突。
  • 退后一步,你打算用这2个字符串做什么?

标签: c++ boost


【解决方案1】:

琐碎,

std::string strAK = to_string( boost::uuids::random_generator()() ).substr( 0, 2 );

但正如已经评论的那样,这不会是普遍唯一的。

【讨论】:

  • 在这个 2 字符字符串可能表示的范围内,它甚至不可能是唯一的,具体取决于基数(即所有上 alpha 和 0-9 为 36)。如果他真的只需要 2 个字符来涵盖所有可能性,那么使用自动递增计数器可能会更好,它可以提供 100 种可能的组合,或者如果他需要更多,则将十进制数转换为不同的基数。
  • 谢谢菲利普...正如你所说的那样,将 2 位 ID 称为 UUID 是错误的。我需要它,因为我已经有一个典型的 UUID,我需要 2 位 ID 来链接到这个地图里面...
猜你喜欢
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多