VS Code 远程 WSL 中 Claude Code 导致 Java 文件修改被自动撤回的一次排查
2026/6/12 13:26:51
想要在C++项目中快速生成全球唯一的标识符?stduuid库正是你需要的跨平台解决方案!作为基于C++17标准的单头文件库,它让通用唯一标识符生成变得简单高效。
【免费下载链接】stduuidA C++17 cross-platform implementation for UUIDs项目地址: https://gitcode.com/gh_mirrors/st/stduuid
git clone https://gitcode.com/gh_mirrors/st/stduuid在你的C++源文件中添加:
#include "stduuid/include/uuid.h"#include <random> #include "stduuid/include/uuid.h" int main() { // 创建随机数生成器 std::random_device rd; std::mt19937 gen(rd()); uuids::uuid_random_generator generator(&gen); // 生成UUID uuids::uuid id = generator(); // 转换为字符串 std::string uuid_str = uuids::to_string(id); std::cout << "生成的UUID: " << uuid_str << std::endl; return 0; }1. 随机生成(版本4)
std::random_device rd; std::mt19937 gen(rd()); uuids::uuid_random_generator gen(&gen); uuids::uuid id = gen();2. 系统生成器
uuids::uuid const id = uuids::uuid_system_generator{}();3. 名称生成(版本5)
uuids::uuid_name_generator gen(uuids::uuid_namespace_dns); uuids::uuid const id = gen("example.com");验证UUID是否为空
uuid empty; if (empty.is_nil()) { std::cout << "这是一个空UUID" << std::endl; }从字符串创建UUID
auto str = "47183823-2574-4bfd-b411-99ed177d3e43"s; auto id = uuids::uuid::from_string(str); if (id.has_value()) { std::cout << "转换成功!" << std::endl; }问题1:找不到头文件
include/uuid.h文件路径正确include_directories("${PROJECT_SOURCE_DIR}/stduuid/include")问题2:随机数生成器未初始化
// 正确做法 std::random_device rd; std::mt19937 gen(rd()); uuids::uuid_random_generator generator(&gen);在容器中使用UUID
// 有序集合 std::set<uuids::uuid> ordered_ids; // 无序集合(需要std::hash特化) std::unordered_set<uuids::uuid> unordered_ids;UUID版本验证
uuids::uuid id = generator(); if (id.version() == uuids::uuid_version::random_number_based) { std::cout << "这是版本4的UUID" << std::endl; }现在你已经掌握了stduuid的基本用法,开始在你的项目中应用这个强大的C++ UUID库吧!
【免费下载链接】stduuidA C++17 cross-platform implementation for UUIDs项目地址: https://gitcode.com/gh_mirrors/st/stduuid
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考