boost库的简单介绍

转载 2006年05月23日 20:46:00
boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。  STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。

      boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。

      在文本处理部分,conversion/lexcial_cast类用于“用C++”的方法实现数字类型和字符串之间的转换。 主要是替代C标准库中的 atoi、 itoa之类的函数。当然其中一个最大的好处就是支持泛型了。

       format库提供了对流的“printf-like”功能。printf里使用%d、%s等等的参数做替换的方法在很多情况下还是非常方便的,STL的iostream则缺乏这样的功能。format为stream增加了这个功能,并且功能比原始的printf更强。

       regex,这个不多说了,正则表达式库。如果需要做字符串分析的人就会理解正则表达式有多么有用了。

       spirit,这个是做LL分析的框架,可以根据EBNF规则对文件进行分析。(不要告诉我不知道什么是EBNF)。做编译器的可能会用到。一般人不太用的到。

       tokenizer库。我以前经常在CSDN上看到有人问怎么把一个字符串按逗号分割成字符串数组。也许有些人很羡慕VB的split函数。现在,boost的tokenizer也有相同的功能了,如果我没记错的话,这个tokenizer还支持正则表达式,是不是很爽?

       array: 提供了常量大小的数组的一个包装,喜欢用数组但是苦恼数组定位、确定数组大小等功能的人这下开心了。

       dynamic_bitset,动态分配大小的bitset,我们知道STL里有个bitset,为位运算提供了不少方便。可惜它的大小需要在编译期指定。现在好了,运行期动态分配大小的bitset来了。

       graph。提供了图的容器和相关算法。我还没有在程序中用到过图,需要用的人可以看看。

       multi_array提供了对多维数组的封装,应该还是比较有用的。

      并发编程里只有一个库,thread,提供了一个可移植的线程库,不过在Windows平台上我感觉用处不大。因为它是基于Posix线程的,在Windows里对Posix的支持不是很好。

      接下来的 数学和数值 类里,包含了很多数值处理方面的类库,数学类我也不太熟,不过这里有几个类还是很有用的,比如rational分数类,random随机数类,等等。

      static_assert,提供了编译器的assert功能。

      test库,一个单元测试框架,非常不错。

      concept_check提供了泛型编程时,对泛型量的一点检查,不是很完善,不过比没有好。

     数据类型类any,一个安全的可以包含不同对象的类。把它作为容器的元素类型,那么这个容器就可以包含不同类型的元素。比用void *要安全。

     compressed_pair,跟STL里的pair差不多。不过对空元素做了优化。

     tuple,呵呵,也许是某些人梦寐以求的东西。可以让函数返回多个值。

     跨语言支持:python,呵呵,好东东啊,可以将C++的类和函数映射给python使用。以下为几个CSDN上的关于boost.python的中文资料:http://dev.csdn.net/article/19/19828.shtmhttp://dev.csdn.net/article/19/19829.shtmhttp://dev.csdn.net/article/19/19830.shtmhttp://dev.csdn.net/article/19/19831.shtm

    pool:内存池,呵呵,不用害怕频繁分配释放内存导致内存碎片,也不用自己辛辛苦苦自己实现了。

    smart_ptr:智能指针,这下不用担心内存泄漏的问题了吧。不过,C++里的智能指针都还不是十全十美的,用的时候小心点了,不要做太技巧性的操作了。

    date_time,这个是平台、类库无关的实现,如果程序需要跨平台,可以考虑用这个。

    timer,提供了一个计时器,虽然不是Windows里那种基于消息的计时器,不过据说可以用来测量语句执行时间。

    uitlity里提供了一个noncopyable类,可以实现“无法复制”的类。很多情况下,我们需要避免一个类被复制,比如代表文件句柄的类,文件句柄如果被两个实例共享,操作上会有很多问题,而且语义上也说不过去。一般的避免实例复制的方法是把拷贝构造和operator=私有化,现在只要继承一下这个类就可以了,清晰了很多。

     value_initialized:数值初始化,可以保证声明的对象都被明确的初始化,不过这个真的实用吗?似乎写这个比直接写初始化还累。呵呵,仁者见仁了。

    这里面除了regex、python和test需要编译出库才能用,其他的大部分都可以直接源代码应用,比较方便。其实这些库使用都不难。最主要的原因是有些库的使用需要有相关的背景知识,比如元编程、STL、泛型编程等等。

转载自“令狐虫的无聊空间

boost库的简单介绍

boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。  STL集中在算法部分,而boost包含了不少工具...
  • mutang
  • mutang
  • 2005年02月18日 11:08
  • 537

Boost.Asio简介

1,什么是Boost.Asio Boost.Asio是一个跨平台的、主要用于网络和其他一些底层输入/输出编程的C++库,在网络通信、COM串行端口和文件上成功地抽象了输入输出的概念,使我们可以基于这些...
  • fron_csl
  • fron_csl
  • 2015年10月12日 15:28
  • 2023

Boost常用库介绍

Boost常用库介绍 关于Boost库怎样安装,我这里不多讲,网上资料很多。我这里重点介绍一下boost的几个库,以便在我们以后的开发中提高工作效率。Boost库文件采用的.hpp的后缀,而不是分成...
  • sinat_20265495
  • sinat_20265495
  • 2016年09月06日 21:07
  • 5768

[转载]boost库的简单介绍

boost库的简单介绍       boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。  STL集中在...
  • snaill
  • snaill
  • 2005年02月08日 14:26
  • 2734

Java简单介绍

Java的三个版本:        Java SE:标准版,各应用平台的基础        Java EE:企业版,以企业为环境而开发应用程序的解决方案        Java ME:微型版,致力于消...
  • elibrace
  • elibrace
  • 2016年01月27日 08:42
  • 2181

JVM简单介绍

JVM模型结构 图: 程序计数器(PC): 当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 场景:分支、循环、跳转、异常处理、线...
  • chun16free
  • chun16free
  • 2016年04月15日 14:07
  • 338

Boost库的简介与安装

一、boost库简介boost库是一个功能强大,构造精巧,跨平台的免费的C++开源库。它使得C++编程更优雅、更有活力、更高产,C++11的标准有三分之二来自boost库。在boost1.57版本时,...
  • jiang_xinxing
  • jiang_xinxing
  • 2017年03月03日 21:26
  • 952

mybatis----简单介绍和使用

进公司后,公司用的Mysql数据库,持久层用的就是Mybatis,开始感觉没有接触过,应该挺难,可是现在看来全是自己吓自己,下面让我来简单介绍一下: MyBatis是一个基于java的持久层框架  ...
  • u013045959
  • u013045959
  • 2016年09月16日 14:11
  • 1473

数据库简单介绍

数据库相关知识简单介绍
  • qq_28975017
  • qq_28975017
  • 2017年08月22日 00:14
  • 252

P2P的简单介绍

发信人: steadystream (后来), 信区: P2P标  题: P2P的简单介绍发信站: 瀚海星云 (2005年03月29日18:46:39 星期二), 站内信件P2P是 "peer-t...
  • kevinye
  • kevinye
  • 2006年08月18日 13:45
  • 1166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:boost库的简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)