摘自 https://www.cnblogs.com/findumars/p/6146907.html
大家涉及的C++库在这篇博文基本都有介绍。mark一下
平时STL用得比较多,boost有涉及;也没留意这些库之间居然有这么丰富。在此宏观地提下STL,boost:
STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。
1.STL
STL从根本上讲,STL是一些“容器”的集合,这些容器有list,vector,map,set,multimap,multiset等,同时它也是一些算法和其他组件的集合。STL的目的就是标准化组件,不用再重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装。
在C++标准中,STL被组织为下面的17个头文件:<algorithm>、<deque>、<functional>、<iterator>、<array>、<vector>、<list>、<forward_list>、<map>、<unordered_map>、<memory>、<numeric>、<queue>、<set>、<unordered_set>、<stack>和<utility>。
STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors)六个部分,详见《STL标准库》《STL源码剖析》。
关于容器的理解:容器就是数据在内存中组织的方法,例如数组、堆栈、队列、链表和二叉树等。
对算法的理解:是应用在容器上以各种方法处理其数据的的功能和行为。例如对其数据进行排序、检索和合并等的算法。
迭代器:迭代器就是使容器和数据行为(算法)相互作用,可以把迭代器看做是指向容器中元素的一个普通指针,可以依次指向元素的一个后继元素。
参考文献:http://blog.sina.com.cn/s/blog_4bbfa6a101000ay2.html
泛型思维,多型与虚拟,STL源码剖析
2.Boost库
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。
boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。
BOOST程序库开发
第0章 导读 1
第1章 Boost程序库总论 7
第2章 时间与日期 17
第3章 内存管理 61
第4章 实用工具 95
第5章 字符串与文本处理 163
第6章 正确性与测试 213
第7章 容器与数据结构 239
第8章 算法 327
第9章 数学与数字 337
第10章 操作系统相关 371
第11章 函数与回调 419
第12章 并发编程 467
第13章 编程语言支持 513
第14章 其他Boost组件 537
第15章 Boost与设计模式 547
第16章 结束语 559
附录