如何在 C++ 中生成 UUID,而不使用 boost 库?

2024-02-09

我想为我的应用程序生成 UUID 以区分应用程序的每次安装。我想在没有 boost 库支持的情况下使用 C++ 生成此 UUID。如何使用其他开源库生成 UUID?

注:我的平台是windows


如果您使用现代 C++,这就可以了。

#include <random>
#include <sstream>

namespace uuid {
    static std::random_device              rd;
    static std::mt19937                    gen(rd());
    static std::uniform_int_distribution<> dis(0, 15);
    static std::uniform_int_distribution<> dis2(8, 11);

    std::string generate_uuid_v4() {
        std::stringstream ss;
        int i;
        ss << std::hex;
        for (i = 0; i < 8; i++) {
            ss << dis(gen);
        }
        ss << "-";
        for (i = 0; i < 4; i++) {
            ss << dis(gen);
        }
        ss << "-4";
        for (i = 0; i < 3; i++) {
            ss << dis(gen);
        }
        ss << "-";
        ss << dis2(gen);
        for (i = 0; i < 3; i++) {
            ss << dis(gen);
        }
        ss << "-";
        for (i = 0; i < 12; i++) {
            ss << dis(gen);
        };
        return ss.str();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C++ 中生成 UUID,而不使用 boost 库? 的相关文章

  • Dapper 强类型查询返回默认对象值

    刚刚开始使用 Dapper 并喜欢它 我遇到了问题 它返回正确数量的对象 但它们的属性都有默认值 using var dbConnection Connection await dbConnection OpenAsync const st
  • boost::interprocess 准备好迎接黄金时间了吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个由内存映射文件支持的线
  • C/C++ 中随机数生成器的实现[重复]

    这个问题在这里已经有答案了 我对 C 中随机数生成器的实现有点困惑 它也与 C 中的明显不同 如果我理解正确 对 srand seed 的调用会以某种方式初始化可通过 rand 访问的隐藏变量 种子 该变量又将函数指向预先生成的序列 例如例
  • 在 MVC 类上创建主键字段

    我是 MVC 和 C 新手 我只是偶然发现它并发现它很有趣 我遇到了一个不允许我继续的问题 这是我的代码 using System using System Collections Generic using System Linq usi
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • 如何检查 .NET 4.0 中的泛型参数是否是动态的

    我有课ObjectMapper
  • 隐形打开的弹出窗口

    第二天就解决这个问题 要重现 请创建新的 WPF 应用程序 xaml
  • C# ConfigurationManager 从 app.config 检索错误的连接字符串

    我有一个简单的 WinForms 应用程序 它最终将成为一个游戏 现在 我正在研究它的数据访问层 但遇到了障碍 我创建了一个单独的项目 名为DataAccess在其中 我创建了一个本地 mdfSQL Server 数据库文件 我还创建了一个
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • 我们应该使用 Eval 还是 Databind 事件?

    当使用 Asp Net 并使用 ListView 等控件创建网站时 使用 Eval 命令是一个好习惯吗 还是应该在 databind 事件中填充文字和数据 取决于您是否想在更新事件上写回数据 在这种情况下数据绑定 如果您只想读取该数据 可以
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • AspNetCore.SignalR:无法启动未处于初始状态的连接

    我无法让 ASP NET Core SignalR 应用程序正常运行 我有这个服务器端代码 public class PopcornHub Hub private int Users public async Task BroadcastN
  • 为什么我的 ITexthandler 不工作?我正在尝试将 XML 解析为 ITextSharp 文档

    我正在使用 Visual Developer 2010 MVC 3 c 我正在尝试将 XML 解析为 iTextSharp 文档 如下所示 ITextHandler textHandler new ITextHandler doc text
  • Unity 2.0 和处理 IDisposable 类型(特别是使用 PerThreadLifetimeManager)

    我知道类似的问题被问过好几次 例如 here https stackoverflow com questions 987761 how do you reconcile idisposable and ioc here https stac
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • 检索 Autofac 容器以解析服务

    在 C WindowForms 应用程序中 我启动一个 OWIN WebApp 它创建另一个类 Erp 的单例实例 public partial class Engine Form const string url http 8080 49
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • 如何根据目标计算机(32 位或 64 位)有条件地使用 WiX 安装文件?

    我有一个包含 32 位版本和 64 位版本的文件 如果我在 32 位计算机上安装应用程序 我希望安装该文件的 32 位版本 同样 如果安装在 64 位计算机上运行 则应安装 64 位版本 如何检查使用 WiX 运行安装程序的机器类型 拜托
  • 为自定义组件创建样式的正确方法

    我在另一篇文章的末尾问过这个问题 但觉得这个话题需要一个自己的问题 如果我用自己的 style 创建了自己的组件 那么在不修改默认值的情况下将其与 Delphi 提供的定义样式合并的正确过程是什么 我可以将默认样式嵌入到我创建的组件中 并且
  • 反转 SVG 路径

    有没有简单的方法来反转 SVG 路径 我怎样才能让它从左上角开始 而不是从右下角开始
  • KeyCollection 作为 IEnumerable 会产生不一致的 LINQ 行为

    以下代码打印 false IEnumerable
  • 具有可移动和可旋转角色/物体/等的游戏中的 AABB

    我正在创建我的第一个 3D 游戏 但遇到了一些问题 我读到AABB https en wikipedia org wiki Minimum bounding box Axis aligned minimum bounding box相交以及
  • 正则表达式获取年份的最后两位数

    我必须使用正则表达式才能获取年份的最后两位数字 但前提是存在 4 位数字 我有以下正则表达式 当有 4 位数字时 它可以完美工作 示例 2014 14 2 然而 我需要这个只有在出现 4 位数字时才起作用 当只有 2 位数字存在时 我在清空
  • lupdate 和条件包含在 .pro 文件中

    我有一个包含条件包含的 pro 文件 如下所示 contains CONFIG embedded SOURCES a cpp HEADERS a h else SOURCES b cpp HEADERS b h 当我从终端运行 lupdat
  • 臭名昭著的 Apache 错误“父进程:子进程已退出,状态为 3221225477”

    我读过一些与臭名昭著的 Apache 错误相关的问题和回复 Apache error notice Parent child process exited with status 3221225477 Restarting 但到目前为止 没
  • EditorJS 总是呈现两个编辑器

    我正在尝试使用 EditorJS 的编辑器 一切工作正常 除了当我第一次加载页面时 它会在开始时初始化两个编辑器 并在每次重新加载页面时不断附加新编辑器 但它们都在里面 div div 分区我有什么遗漏的吗 react etc import
  • Webpack Uglify CSS 中的错误

    我强调要让 Uglify 与我的项目一起工作 以前我使用过 Uglify 并且没有出现问题 但现在我认为这与 SASS 相关 ERROR in css loader sass loader app scss global header sc
  • 替换表达式树中的类型

    我正在努力修改表达式树 我简化了示例 以便更容易在此处显示 让我们从两个类开始 public class Filter public string FilterableProperty1 get set public string Filt
  • 选择 * 与选择列

    如果我只需要 2 3 列并且我查询SELECT 与在选择查询中提供这些列不同 更多 更少 I O 或内存是否会导致性能下降 如果我在不需要的情况下选择 则可能会出现网络开销 但是在选择操作中 数据库引擎是否总是从磁盘中提取原子元组 或者只提
  • CMake:如何在 Visual Studio 项目中的“头文件”中显示标题?

    我用 C 创建了一个简单的库项目 并添加了 CMake 文件以自动生成 Visual Studio 项目 我的小项目只包含 2 个文件 include testproject testproject h src testproject cp
  • C# 自增运算符错误:操作数语法不正确?

    我正在看the docs https learn microsoft com en us dotnet csharp language reference operators increment operator并尝试了解操作员的实际工作原
  • ASP.Net WebAPI 区域支持

    我正在尝试向我的 asp net 4 RC 站点添加一些 WebAPI 支持 并希望将其放入一个区域中 我看到有人设法让它在测试版上运行 here http netmvc blogspot co uk 2012 03 aspnet mvc
  • 如何测试 Eclipse 包中的 URL 是否是目录?

    我正在尝试从插件内置的包的内容中填充目录 以下代码在捆绑包是文件系统时有效 但在捆绑包是 JAR 时失败 测试 URL 是否为目录的最佳方法是什么 或者是否有一种完全不同的 更好的方法来从资源包创建文件结构 static private v
  • Android Fragment:使用哪个生命周期方法来调用Web服务

    我正在开发一个涉及多个片段的应用程序 在每个片段中 我必须调用 Web 服务来获取数据 目前我正在从以下位置调用网络服务onCreateView 片段的方法 我收到的问题是 每当 Web 服务调用正在进行时 如果设备方向发生更改 则新的 W
  • 为什么 Azure 部署需要这么长时间?

    我试图理解为什么将一个小型应用程序部署到 Azure 需要 20 60 分钟 使用配置 包上传方法 而不是从 VS 内 我已读完这个情况 http msdn microsoft com en us library ff803362 aspx
  • Kotlin 相当于 Java8 中的Optional::map

    你知道是否有捷径 if x null null else f x 对于JavaOptional你可以这样做 x map SomeClass f Kotlin 利用自己的方法来实现这一想法Option 但是有map filter orElse
  • 如何在 C++ 中生成 UUID,而不使用 boost 库?

    我想为我的应用程序生成 UUID 以区分应用程序的每次安装 我想在没有 boost 库支持的情况下使用 C 生成此 UUID 如何使用其他开源库生成 UUID 注 我的平台是windows 如果您使用现代 C 这就可以了 include