STL与标准库

STL与标准库

摘编自《Extended STL》中译

在C++的世界里,STL这个术语是有歧义的。有很多C++纯化论者会抓住一切机会纠正你对"STL"这个术语的错用,而告诉你应该使用"标准库"这样的称呼。

严格来说,STL指的是由Stepanov和他的同事们在上世纪80年代到90年代开发的、基于六个核心概念的通用模板库。这六个STL核心概念是:容器(container)、迭代器(iterator)、算法(algorithm)、函数对象(function object)、适配器(adaptor)和分配器(allocator)。但我们今天使用的术语"STL"泛指C++标准库中与这六个概念相关的部分。

虽然标准库中包含了许多原STL(Stepanov与同事开发的版本)的内容,但却(还)没有全盘照搬。比方说C++03标准目前只定义了基于树的关联容器,而没有包含原STL中基于hash表的关联容器。尽管已经有建议要加入此类容器,并且会在下个C++标准发布时被采纳,但眼下的状况就是标准库并非STL的超集。另一方面,标准库中包含不属于STL但却与STL兼容的组件,即IOStreams。

参考: C++标准库与STL的关系

(转载请注明来源于金庆的专栏)

你可能感兴趣的:(C++,c,算法,C#)