boost
文章平均质量分 60
友善啊,朋友
这个作者很懒,什么都没留下…
展开
-
boost:function
function是函数对象的容器,它以对象的形式封装了原始的函数指针或函数对象,能够容纳任意符合函数签名的可调用对象。因此可以用于回调机制,暂时保管函数或函数对象,在之后需要的时机再调用。声明形式#include <boost/function.hpp>using namespace boost;int addFunc(int a,int b,int c){ return a + b + c;}int main(){ //以下两种声明等价原创 2022-04-12 23:41:16 · 426 阅读 · 0 评论 -
boost:ref库
在某些情况下,如在子线程运行一个函数,即使该函数的参数了引用类型,实际上传递时还是要拷贝对象。如果这时希望实际传引用,可以使用 ref 库中定义的引用类型包装器reference_wrapper。ref 也被加入到标准库了。#include <boost/ref.hpp>using namespace boost;int main(){ int x = 10; reference_wrapper<int> rw(x);//将x的引用包装为一个对象 .原创 2022-04-11 00:49:53 · 402 阅读 · 1 评论 -
boost:断言
#include <boost/assert.hpp>int main(){ int a = 177; BOOST_ASSERT(a < 99);//等同于标准库的 assert() BOOST_ASSERT_MSG(a < 99,"a应该小于99");}默认这两个宏仅在debug模式下有用。禁用断言在导入头文件 “boost/assert.hpp” 之前添加:#define BOOST_DISABLE_ASSERTS可使上面两.原创 2022-04-10 16:55:44 · 1168 阅读 · 0 评论 -
boos:一些实用工具
一、禁止一个类拷贝构造和拷贝赋值#include <boost/noncopyable.hpp>using namespace boost;//继承boost::noncopyable即可禁用拷贝构造和拷贝赋值class do_not_copy : public boost::noncopyable{};int main(){ do_not_copy d1;// do_not_copy d2(d1); //报错// do_not_copy d3;/原创 2022-04-10 14:55:33 · 408 阅读 · 0 评论 -
boost:pool库——内存池
内存池预先分配了一块大的内存空间,然后就可以在其中使用某种算法实现高效快速的自定制内存分配。boost.pool 库基于简单分隔存储思想实现了一个快速、紧凑的内存池库,不仅能够管理大量的对象,还可以被用做STL的内存分配器。它近似于一个小型的垃圾回收机制,在需要大量地分配/释放小对象时很有效率,而且完全不需要考虑 delete。pool库包含四个组成部分:最简单的 pool 分配类实例的 object_pool 单例内存池 singleton_pool 可用于标准库的 pool_all原创 2022-04-09 23:38:13 · 3462 阅读 · 0 评论 -
boost:smart_ptr库——两种智能指针
boost提供的智能指针都是轻量级的对象,速度与原始指针相差无几,都是异常安全的,对于所指向的类型也仅由一个要求:指向的类型T的析构函数不能抛出异常。一、scoped_ptr此智能指针包装了 new 操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删除。当 scoped_ptr 对象的生命周期结束时,析构函数会使用 delete 操作符自动销毁所管理的对象,从而正确地回收资源。其特点是不能转让,一旦获取了对象的管理权,就无法再从它那里取回来。因为它将拷贝构造函数和赋原创 2022-04-09 21:52:13 · 1183 阅读 · 0 评论 -
boost:date_time库——其他内容
一、几个有用的宏1、DATE_TIME_NO_DEFAULT_CONSTRUCTOR此宏可以禁止编译器调用date 和 ptime 的默认构造函数,强制它们在构造时必须有一个有效的值,可以避免某些疏忽而导致的错误。2、BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES此宏启用了 weeks、months、years 等日期区间便捷类型,它们在处理日期时很有用,可以使代码更清晰易懂。3、BOOST_DATE_TIME_POSIX_TIME_STD_C.原创 2022-04-09 13:52:14 · 1238 阅读 · 0 评论 -
boost:date_time库——处理时间
date_time 库在格里高利历的基础上提供微秒级别的时间系统,如果需要,它最高可以达到纳秒级别的精度。一、时间长度表示时间长度的类是 time_duration,它可以表示包括时、分、秒、毫秒的时间长度。它还有几个子类,表示不同的时间长度单位:#include <boost/date_time/posix_time/posix_time.hpp>using namespace boost::posix_time;int main(){ time_durati原创 2022-04-07 23:17:07 · 701 阅读 · 0 评论 -
boost:date_time库——处理日期
date_time 库包含两部分,分别是处理日期的 gregorian 和处理时间的 posix_time。date_time 库的日期基于格里高利历,支持从 1400-01-01 到 9999-12-31之间的日期计算。一、特殊的时间概念date_time 库的 special_values 枚举定义了特殊时间的概念:pos_infin:正无限 neg_infin:负无限 no_a_date_time:无效时间 min_date_time:可表示的最小日期或时间 max_date_原创 2022-04-05 21:40:10 · 957 阅读 · 0 评论 -
boost:timer库
timer库包含3个小组件,计时器 timer、progress_timer 和进度指示器 progress_display。这些组建的计时精度相对较低。一、timer1.1、描述timer可以测量时间的流速,提供毫秒级别的计时精度和操作函数。timer对象一旦被声明,它的构造函数就开启了计时工作。1.2、使用示例以下代码演示了timer的全部用法:#include <boost/timer.hpp>int main(){ boost::timer原创 2022-04-05 15:06:10 · 555 阅读 · 0 评论 -
windows系统下编译boost库
1、进入官方网站下载源码:2、解压后按个人情况使用命令行工具操作命令行进入解压的文件夹,运行目录下的 bootstrap.bat 文件。3、运行后会生成一个 b2.exe 文件,还是命令行运行此文件即执行编译。4、编译过程大概十分钟,编译后会提示库文件路径和包含路径:5、把包含路径添加到*.pro文件中,boost的源文件是.hpp格式的,大部分库只要包含到工程里面就可以直接用,只有少部分需要编译成链接库。所以用到的时候再从库文件路径添加相应的库文件即可。其他编译生成的占空.原创 2022-04-05 11:33:52 · 3187 阅读 · 1 评论
分享