STL与Boost对比

Posted 也无风雨、也无晴。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL与Boost对比相关的知识,希望对你有一定的参考价值。

STL

  • 标准模板库(Standard Template Library,STL)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。虽说它主要表出现到C++中,但在被引入C++之前该技术就已经存在了很长时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
  • 标准模板库是一个C++软件库,大量影响了C++标准程序库但并非是其的一部分。其中包含4个组件,分别为算法、容器、函数、迭代器。
  • 模板是C++程序设计语言中的一个重要特征,而标准模板库正是基于此特征。标准模板库使得C++编程语言在有了同Java一样强大的类库的同时,保有了更大的可扩展性。在C++标准中,STL被组织为下面的13个头文件:
    (algorithm ,deque,functional,iterator,vector,list,map,memory,numeric,queue,set,stack,utility)。教程

boost

  • Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。
  • Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。
  • Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。但Boost中也有很多是实验性质的东西,在实际的开发中使用需要谨慎。
  • Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。
  • Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。在Boost库的开发中,Boost社区也在这个方向上取得了丰硕的成果。在送审的C++标准库TR1中,有十个Boost库成为标准库的候选方案。在更新的TR2中,有更多的 Boost库被加入到其中。从某种意义上来讲,Boost库成为具有实践意义的准标准库。
  • 可下载Boost C++ Libraries安装boost库。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。
  • 大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。
  • 很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。官网

以上是关于STL与Boost对比的主要内容,如果未能解决你的问题,请参考以下文章

evpp性能测试: 与Boost.Asio进行吞吐量对比测试

阿迪bounce和boost哪个走路舒服 bounce和boost对比

STL 之 VS版本 与 gunc版本 对比效率

C++初阶:STL —— listlist的介绍及使用 | list的深度剖析及模拟实现 | list与vector的对比

C++初阶:STL —— listlist的介绍及使用 | list的深度剖析及模拟实现 | list与vector的对比

C++初阶:STL —— listlist的介绍及使用 | list的深度剖析及模拟实现 | list与vector的对比