boost常用已加入C++标准库中的boost模块

Boost常⽤的库很多都已经被包含到C++11、C++14或者C++17中,本文总结已加入到C++标准库中的boost模块。

常⽤功能库:

  • 关于时间的 chrono库, 已加⼊C++11标准;
  • 关于随机数的random库,已加⼊C++11标准;
  • 关于正则表达式的regex库,已加⼊C++11标准。

内存管理:

主要是智能指针

  • scoped_ptr和scoped_array,对应于在c++11中的unique_ptr;
  • shared_ptr,已加⼊ c++11标准;
  • weak_ptr,已加⼊ c++11标准;
  • shared_array,多数情况可以使用shared_ptr或者vector<shared_ptrt>来代替。

实用⼯具:

  • noncopyable,允许程序轻松实现⼀个禁⽌拷贝的类。它将拷贝构造函数和拷贝赋值函数设置为private,禁⽌进⾏拷贝和赋值。将默认构
    造函数设置为protected,禁⽌直接产出⽆意义的noncopyable对象。
  • ignore_unused,使⽤可变参数模板,可以⽀持任意数量、任意类型的变量,把它们作为函数的参数“使⽤”了⼀下,达到了与(void)var
    完全相同的效果。但它的命名更清晰,写法更简单,⽽且由于是inline函数,完全没有运⾏时的效率损失。
  • uuid, ⽤来⽣成全局唯⼀的UUID。

容器与数据结构:

  • 定长数组类array,已加⼊C++11标准;
  • 散列容器(⽆序关联容器)unordered_set、unordered_mulitset、unordered_map、unordered_multimap,已加⼊C++11标准;
  • 元组tuple,已加⼊C++11标准;
  • any,⽤来容纳任何类型的元素。 已加⼊C++17标准;
  • 环形缓冲区circular_buffer。

函数与回调:

  • ref库,定义了⼀个很⼩很简单的引⽤类型的包装器,可以⽤来进⾏引⽤传递。 已加⼊C++11标准。
  • bind库,是对C++98标准中函数适配器bind1st/bind2nd的泛化和增强,可以适配任意的可调⽤对象,包括函数指针,函数引⽤,成员函
    数指针和函数对象。已加⼊到C++11标准。
  • function是⼀个函数对象的“容器”,概念上像是C/C++中函数指针类型的泛化,是⼀种“智能函数指针”。它以对象的形式封装了原始
    的函数指针或函数对象,能够容纳任意符合函数签名的可调⽤对象。因此可以被⽤于回调机制,暂时保管函数或函数对象,在之后需要的时机再调⽤,使回调机制拥有更多的弹性。 已加⼊到C++11标准。

并发编程:

  • atomic实现原⼦操作。它封装了不同计算机硬件的底层操作原语,提供了跨平台的原⼦操作功能,让我们完全摆脱并发编程读写变量的困
    扰。已加⼊到C++11标准。
  • thread库实现了操作系统⾥的线程表⽰,赋值启动和管理线程对象。已加⼊到C++11标准。
  • asio库基于前摄器模式封装了操作系统的select、kqueue、poll/epoll、overlapped I/O 等机制,实现了异步IO模型。

参考

《boost程序库完全开发指南》
百度文库:https://wenku.baidu.com/view/64baefde740bf78a6529647d27284b73f2423695.html

猜你喜欢

转载自blog.csdn.net/stallion5632/article/details/125815760