天天看点

boost之路 一

boost很强大,有了他,我们开发程序方便了不少,很多都写好的模板直接用,要是自己去写的话就蛋疼了,涉及到很多算法啊,系统接口啊,就很累了,但是boost已经封装好的模板直接调用就可以实现了,所以,开发速度上会提高不少。

boost总共有90多个库,以后会更多,学起来就很累 了,但是常用的也就四十多个下面我们来看看是哪些吧

简要说明
​​Boost.Any​​ Boost.Any 提供了一个名为 ​

​boost::any​

​​ 的数据类型,可以存放任意的类型。 例如,一个类型为 ​

​boost::any​

​​ 的变量可以先存放一个 ​

​int​

​​ 类型的值,然后替换为一个 ​

​std::string​

​ 类型的字符串。
​​Boost.Array​​ TR1 Boost.Array 可以把 C++ 数组视同 C++ 标准的容器。
​​Boost.Asio​​ TR2 Boost.Asio 可用于开发异步处理数据的应用,如网络应用。
​​Boost.Bimap​​ Boost.Bimap 提供了一个名为 ​

​boost::bimap​

​​ 的类,它类似于 ​

​ std::map​

​​. 主要的差别在于 ​

​boost::bimap​

​ 可以同时从键和值进行搜索。
​​Boost.Bind​​ TR1 Boost.Bind 是一种适配器,可以将函数作为模板参数,即使该函数的签名与模板参数不兼容。
​​Boost.Conversion​​ Boost.Conversion 提供了三个转型操作符,分别执行向下转型、交叉转型,以及不同数字类型间的值转换。
​​Boost.DateTime​​ Boost.DateTime 可用于以灵活的格式处理、读入和写出日期及时间值。
​​Boost.Exception​​ Boost.Exception 可以在抛出的异常中加入额外的数据,以便在 ​

​catch​

​ 处理中提供更多的信息。 这有助于更容易地调试,以及对异常情况更好地作出反应。
​​Boost.Filesystem​​ TR2 Boost.Filesystem 提供了一个类来处理路径信息,还包含了几个访问文件和目录的函数。
​​Boost.Format​​ Boost.Format 以一个类型安全且可扩展的 ​

​boost::format​

​​ 类替代了 ​

​ std::printf()​

​ 函数。
​​Boost.Function​​ TR1 Boost.Function 简化了函数指针的定义。
​​Boost.Interprocess​​ Boost.Interprocess 允许多个应用通过共享内存以快速、高效的方式进行通信。
​​Boost.Lambda​​ Boost.Lambda 可以定义匿名的函数。 代码被内联地声明和执行,避免了单独的函数调用。
​​Boost.Multiindex​​ Boost.Multiindex 定义了一些新的容器,它们可以同时支持多个接口,如 ​

​std::vector​

​​ 和 ​

​std::map​

​ 的接口。
​​Boost.NumericConversion​​ Boost.NumericConversion 提供了一个转型操作符,可以安全地在不同的数字类型间进行值转换,不会生成上溢出或下溢出的条件。
​​Boost.PointerContainer​​ Boost.PointerContainer 提供了专门为动态分配对象进行优化的容器。
​​Boost.Ref​​ TR1 Boost.Ref 的适配器可以将不可复制对象的引用传给需要复制的函数。
​​Boost.Regex​​ TR1 Boost.Regex 提供了通过正则表达式进行文本搜索的函数。
​​Boost.Serialization​​ 通过 Boost.Serialization,对象可以被序列化,如保存在文件中,并在以后重新导入。
​​Boost.Signals​​ Boost.Signal 是一个事件处理的框架,基于所谓的 signal/slot 概念。 函数与信号相关联并在信号被触发时自动被调用。
​​Boost.SmartPoiners​​ TR1 Boost.SmartPoiners 提供了多个智能指针,简化了动态分配对象的管理。
​​Boost.Spirit​​ Boost.Spirit 可以用类似于 EBNF (扩展巴科斯范式)的语法生成词法分析器。
​​Boost.StringAlgorithms​​ Boost.StringAlgorithms 提供了多个独立的函数,以方便处理字符串。
​​Boost.System​​ TR2 Boost.System 提供了一个处理系统相关或应用相关错误代码的框架。
​​Boost.Thread​​ C++0x Boost.Thread 可用于开发多线程应用。
​​Boost.Tokenizer​​ Boost.Tokenizer 可以对一个字符串的各个组件进行迭代。
​​Boost.Tuple​​ TR1 Boost.Tuple 提供了泛化版的 ​

​std::pair​

​,可以将任意数量的数据组在一起。
​​Boost.Unordered​​ TR1 Boost.Unordered 扩展了 C++ 标准的容器,增加了​

​boost::unordered_set​

​​ 和 ​

​boost::unordered_map​

​.
​​Boost.Variant​​ Boost.Variant 可以定义多个数据类型,类似于 ​

​union​

​​, 将多个数据类型组在一起。 Boost.Variant 比 ​

​union​

​ 优胜的地方在于它可以使用类。