【C++]标准模板库STL

STL

名词解释:STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用安装额外的库文件。
在C++标准中,STL被组织为下面的13个头文件:< algorithm>、< deque>、< functional>、< iterator>、< array>、< vector>、< list>、、、、< memory>、< numeric>、< queue>、< set>、< unordered_set>、< stack>和< utility>。

组成部分

STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors)六个部分。

STL特点

数据结构和算法的分离,非面向对象本质。访问对象是通过象指针一样的迭代器实现的;
容器是象链表,矢量之类的数据结构,并按模板方式提供;
算法是函数模板,用于操作容器中的数据。由于STL以模板为基础,所以能用于任何数据类型和结构。

STL容器介绍可以参开我的另一篇博客STL容器
算法:STL算法能用于各种容器。STL提供的许多算法,大量用于操作容器,插入、删除、搜索、排序以及其他算法,都适合于部分或者所有的STL容器。

STL的实现非常简单。到目前为止,类的设计者都将算法作为容器的成员函数,使算法和容器相关联。STL采用不同的方法,STL的算法和容器是分离的,它只是间接地通过迭代器操作容器的元素。STL算法能够用于STL容器以及基于指针的、C风格的数组。

猜你喜欢

转载自blog.csdn.net/weibo_dm/article/details/80749126