boost库的使用

我的经验:
在强调运行效率的场合:
shared_ptr/weak_ptr很好用,尤其是weak_ptr这个能够判断一个对象的生命周期的玩意,可以简化和扩展很多设计。
unordered系列的容器也很不错。
thread+function+bind是异步编程的利器。
signal:这个因为个人比较喜事件驱动这种模型,没用过,不太清楚,但这种回调机制貌似使用场景也很广。
python:结合python很方便,适合快速开发的场合。

在强调开发效率的场合:
正则表达式,这个不用说了,字符串处理的利器。
状态机,可以用很少的代码写出很规范的状态机,还是层次性的。很不错,我很早以前受这个库的启发实现过一个类似的状态机库,用来解析通信协议的,写的代码比别人少,运行效率居然还比其他人写的手工解析的高。
Program Options: 解析程序参数和配置文件什么的,很方便。

一些我个人感觉不是很好的库:
asio,我认为有过度设计之嫌,一般的应用场景很好用,但很难扩展。比如我曾经想在这个库的基础上弄个解析链路层协议的玩意出来,结果代码死活没看懂。当然也可能是我水平太差了。
spirit,炫耀技术的玩具,可以直接用c++直接写BNF,但生成的程序体积巨大,速度巨慢。意义在于展现模板元编程能带来多强大的表达能力,但其他方面意义真心不大。
lambda,和上面差不多,这玩意在c++11以后完全不需要了。

时间: 2024-10-29 19:08:18

boost库的使用的相关文章

windows下安装boost库

工作中现在会接触boost,所以我计划两个月之内努力熟悉一下boost.今天在自己win10系统上尝试安装了boost库,下面把遇到的问题总结一下: 1. 下好1.61版本库,在boost目录下运行bootstrap.bat 时发现dos闪退且目录下并没有多出bjam.exe和b2.exe,以管理员权限运行也是没结果. 后来索性重启了下电脑,果然解决问题. 2. 接下来就是编译,编译命令的话上网搜下就有了,关键出现了CL不识别的问题,这个问题也好解决.在自己的boost目录下 shift+右键,

(三)Boost库之字符串处理

(三)Boost库之字符串处理 字符串处理一直是c/c++的弱项,string_algo库很好的弥补了这一点. string_algo 库算法命名规则: 前缀i    : 有这个前缀表名算法的大小写不敏感,否则大小写敏感 后缀_copy:  有这个后缀表明算法不变动输入,返回处理结果的拷贝,否则算法原地处理 后缀_if  :  有这个后缀表明算法需要一个作为判断式的谓词函数对象,否则使用默认的判断准则 string_algo库提供的算法共分五大类,如下: [1]大小写转换: [2]判断式与分类:

在win7 + vs express for desktop中安装stlport和boost库

一.安装stlport stlport是将sgi的stl库平移到各个平台上.sgi的这个库的特点就是效率非常高.boost在这个库上面运行要比vs自带的stl库效率高.所以我们首选安装stlport. 下载stlport:http://sourceforge.net/projects/stlport/ 最新版本是5.2.1 放到C盘根目录下面,解压.进入"vs2012 x86 native tools command prompt".(注意:用cmd不行) 进入"C:\STL

VS2008下直接安装使用Boost库1.46.1版本号

Boost库是一个可移植.提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个. Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容.在C++社区中影响甚大,是不折不扣的“准”标准库. Boost因为其对跨平台的强调,对标准C++的强调,与编写平台无关.大部分boost库功能的使用仅仅需包含对应头文件就可以,少数(如正則表達式库,文件系统库等)须要链接库.但Boost中也有非常多是实验性质的东西,在实际的开发中有用须要慎重.boost

在VS2013下配置BOOST库

1.安装Boost库 (1).首先打开Boost的官网(http://www.boost.org/),找到下载位置,如下图中红框所示,此时最新的版本是1.64.0: (2).点击进入下载页面,选择你需要的文件下载,这里我选择windows下的zip文件: (3).下载好后,解压,得到文件目录如下图,找到其中的bootstrap.bat文件: (4).双击运行bootstrap.bat后,让其自动运行完成后,会发现当前文件夹中增加了几个文件,找到其中的bjam.exe,如下图所示 (5).双击运行

Qt编译和使用boost库(附5.51的Boost下载)good

配置gcc可以在cmd中使用 添加MinGW到环境变量 安装过Qt的都已经默认安装过MinGw的环境了,只需要找到配置一下环境变量就行 我的在D:\Qt5.5.1\Tools\mingw492_32\bin 然后将该路径添加到系统环境变量中 验证是否安装成功 打开cmd,输入一下的内容 gcc -v 如果显示了gcc的版本信息,那么MinGw添加成功,下面就可以在cmd中访问了. 编译boost库 boost库版本介绍 我这里使用的是boost1.56,其他的版本也是一样的 生成b2.exe和b

C++11和Boost库

C++11标准中引入了很多Boost库中的东西,对于所有人来说,完全可以使用C++11来替代之前使用的boost库. 但是还有一些事项需要我们注意. 发现了一篇好文,出处: https://meetingcpp.com/index.php/br/items/c11-and-boost.html Some parts of the Standard Library in C++11 are predated in boost. When playing around with C++11, you

boost库在工作(15)绑定器与函数对象之三

前面已经可以优美地解决两个参数的函数给算法for_each调用了,但是又会遇到这样的一种情况,当需要三个参数或者三个以上的参数给算法for_each调用呢?从STL里的绑定器bind1st,显然是不行了,因为它最多只支持两个参数,那还有什么办法呢?这时就需要使用boost库里强大的绑定器bind了.它不仅适用的情况比STL库里的多,还更加方便,更加人性化.下面就来看看怎么样绑定三个参数的类成员函数的例子,如下: [cpp] view plaincopy //调用类的成员函数,但参数两个以上. /

c++ boost库学习三:实用工具

noncopyable 大家都知道定义一个空类的时候,它实际包含了构造函数,拷贝构造函数,赋值操作符和析构函数等. 这样就很容易产生一个问题,就是当用户调用A a(“^_^") 或者A c="^_^" 时会发生一些意想不到的行为,所以很多时候我们需要禁用这样的用法. 一种方法就是把拷贝构造函数和赋值操作符显式的定义为private,但是这样需要很多代码. 于是boost库为大家提供了一个简单的方法:只需要将类继承于noncopyable就可以了. #include "

Linux/ubuntu下的boost库安装

我一直都没有写博客的习惯,最近正好在研究linux下的开发(目前也只是粗粗的研究),且用到了boost库,就乘此机会写点什么,最起码记录一下我在安装boost的一些步骤,主要给和我一样的linux开发新手们提供点借鉴(当然如果看到这篇文档的话 ),作者(jwybobo2007). 1.下载boost库 这个我就不说啥了,去官网看一下就能下到:www.boost.org ,现在的版本更新到了1.44 2.执行:sudo apt-get install build-essential 不为别的,就是