boost中的有用工具assign和uuid

摘要:
Assignassign重载“+”=和“,”,并实现连续赋值。它不仅支持所有8个STL标准容器。

assign

  • assign重载‘+’=和‘,’实现连续赋值
  • assign不仅支持所有8个STL标准容器(vector、string、deque、list、set、multiset、map、multimap)。也对stl中的容器适配器提供了适当的支持,包括queue和priority_queue
  • 演示样例代码:
int testAssign()
{
    using namespace boost::assign;

    // overload operator '+=' & ','
    vector<int> v;
    v += 1, 2, 3, 4, 5, 6 * 6;

    set<string> s;
    s += "cpp", "java", "c#", "python";

    map<int, string> m;
    m += make_pair(1, "one"), make_pair(2, "two");

    // overload '()'
    vector<int> v1;
    push_back(v)(1)(2)(3)(4)(5);

    return 0;
}

uuid

  • 生成各种各样的uuid
  • 在用string_generator时。须要加入宏定义_SCL_SECURE_NO_WARNINGS;
  • 在使用cout << uuid 和 to_string(uuid)时。须要包括uuid_io.hpp
  • 应用实例:
int testUuid()
{
    boost::uuids::string_generator sgen;
    boost::uuids::uuid u = sgen("01234567-89ab-cdef-0123-456789abcdef");
    string str = to_string(u); 

    cout << "u   : " << u << endl;
    cout << "str : " << str << endl;

    using namespace boost::uuids::detail;
    sha1 sha;

    char *szMsg = "a short message";
    sha.process_byte(0x10);
    sha.process_bytes(szMsg, strlen(szMsg));
    sha.process_block(szMsg, szMsg + strlen(szMsg));

    unsigned int digest[5];
    sha.get_digest(digest);

    for (int i = 0; i < 5; ++i)
    {
        cout << hex << digest[i];
    }

    return 0;
}

免责声明:文章转载自《boost中的有用工具assign和uuid》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java IO系列之一:IODjango登录与注销下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

golang查找端口号占用的进程号

golang官方包: https://studygolang.com/pkgdoc os 支持获取当前进程pid并kill、但是仅仅限于获取当前进程pid FindProcess().Kill() os.Getpid() 基础用法;但是却没有提供依据端口号获取对应的pid,所以还是执行shell指令对结果集进行过滤获取pid // 获取8299端口对应进程...

C# List&amp;lt;T&amp;gt;排序总结(摘抄)

这里有很多种方法对List进行排序,本文总结了三种方法,但多种实现。 1.对基础类型排序 方法一: 调用sort方法,如果需要降序,进行反转: List<int> list = new List<int>(); list.Sort();// 升序排序 list.Reverse();// 反转顺序 方法二: 使用lambda表达式,在...

TCP/IP协议学习(五) 基于C# Socket的C/S模型

TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的;然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多。C#通过提供的Socket API实现了对TCP/IP协议栈的封装,让实现C/S模型变得更加简单,对于入门TCP/IP协议学习十分有帮助。 Socket通讯实现参考标准的流程如图所示, · 服...

尚硅谷《谷粒商城项目总结》

1、前言 花了几天的时间把尚硅谷的视频项目看完了,跟着做了一遍,基本上没啥大的问题,有几个小问题也做了总结。 技术方面除了 vue/nacos 没用过,其他的基本都用过,我们公司实际开发中用的也就是这一套东西。 中间的不想看,可以直接点击目录,看总结,总结里有你针对此项目所有的总结及问题解决的说明 1.1技术栈 springcloud 统一配置中心:apo...

Redis分布式锁

加锁 所以需要保证设置锁及其过期时间两个操作的原子性,spring data的 RedisTemplate 当中并没有这样的方法。但是在jedis当中是有这种原子操作的方法的,需要通过 RedisTemplate 的 execute 方法获取到jedis里操作命令的对象,代码如下: String result = redisTemplate.execut...

Spring Boot 异步请求和异步调用,一文搞定

一、Spring Boot中异步请求的使用 1、异步请求与同步请求     特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。 一句话:增加了服务器对客户端请求的吞吐量(实际生产上我们用的比较少,如果并发请求量很大的情况下,我们会通...