随笔分类 -  STL and Boost

摘要:BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件: BSD 阅读全文
posted @ 2017-04-08 20:37 任智康 阅读(1170) 评论(0) 推荐(0) 编辑
摘要:1 创建线程 首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& threadfunc): boost::fun 阅读全文
posted @ 2017-03-24 21:56 任智康 阅读(17894) 评论(0) 推荐(1) 编辑
摘要:weak_ptr是为配合shared_ptr而引入的一种智能指针,它更像是shared_ptr的一个助手,而不是智能指针,因为它不具有普通指针的行为,没有重载operator*和operator->,它的最大作用在于协助shared_ptr,像旁观者那样观测资源的使用情况。 但它有一个很大的缺点,那 阅读全文
posted @ 2017-03-21 19:55 任智康 阅读(550) 评论(0) 推荐(0) 编辑
摘要:迭代器的分类 在STL中,原生指针也是一种迭代器,除了原生指针以外,迭代器被分为五类: Input Iterator 此迭代器不允许修改所指的对象,即是只读的。支持==、!=、++、*、->等操作。 Output Iterator 允许算法在这种迭代器所形成的区间上进行只写操作。支持++、*等操作。 阅读全文
posted @ 2017-03-07 17:02 任智康 阅读(1522) 评论(0) 推荐(0) 编辑
摘要:侯捷老师在《STL源码剖析》中说到:了解traits编程技术,就像获得“芝麻开门”的口诀一样,从此得以一窥STL源码的奥秘。如此一说,其重要性就不言而喻了。 之前已经介绍过迭代器,知道了不同的数据结构都有自己专属的迭代器,不同的迭代器也有不同的特性,由于算法的接口是统一的,通过迭代器的不同属性,算法 阅读全文
posted @ 2017-03-07 15:51 任智康 阅读(779) 评论(0) 推荐(0) 编辑
摘要:C++0x中加入了右值引用,和move函数。右值引用出现之前我们只能用const引用来关联临时对象(右值)(造孽的VS可以用非const引用关联临时对象,请忽略VS),所以我们不能修临时对象的内容,右值引用的出现就让我们可以取得临时对象的控制权,终于可以修改临时对象了!而且书上说配合move函数,可 阅读全文
posted @ 2017-03-07 11:21 任智康 阅读(756) 评论(0) 推荐(0) 编辑
摘要:在c++11中,一个callable object(可调用对象)可以是函数指针、lambda表达式、重载()的某类对象、bind包裹的某对象等等,有时需要统一管理一些这几类对象,新增的function就是为此而生。function位于functional头文件,可以看做是那几类callable ob 阅读全文
posted @ 2016-12-27 11:09 任智康 阅读(1717) 评论(0) 推荐(0) 编辑
摘要:std::bind 用于绑定一个函数,返回另外一种调用方式的函数对象 ,可以改变参数顺序 和个数,特别是在多线程的程序中,经常用它将函数进行包装,然后打包发送给工作线程,让工作线程去执行我们的任务。 std::function 用于构建一个函数特别是 回调函数 ,用于替代 函数指针/*常和匿名函数一 阅读全文
posted @ 2016-12-27 10:35 任智康 阅读(1946) 评论(0) 推荐(0) 编辑
摘要:简单来将,仿函数(functor)就是一个重载了"()"运算符的struct或class,利用对象支持operator()的特性,来达到模拟函数调用效果的技术。 我们平时对一个集合类遍历的时候,例如vector,是这样做的: for(vector<int>::const_iterator iter 阅读全文
posted @ 2016-12-23 22:53 任智康 阅读(10372) 评论(0) 推荐(0) 编辑
摘要:(1)首先下载源代码:http://softlayer-dal.dl.sourceforge.net/project/boost/boost/1.56.0/boost_1_56_0.zip 解压到某个目录,我解压到了D盘根目录:D:\boost_1_56_0 (2)生成bjam.exe可执行文件 用 阅读全文
posted @ 2016-08-13 11:20 任智康 阅读(345) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示