C ++中的STL(标准模板库)是不同算法和类模板的集合。STL允许程序员轻松有效地实现基本的预定义数据结构。STL基本上为我们提供了诸如堆栈,列表和队列之类的数据结构。标准模板库还允许程序员使用预定义的函数直接实现许多算法。
STL(标准模板库)基本上是一个包含类,算法和集成器的库。该库包含助手类和函数模板。我们可以直接使用这些功能,而不必键入基本功能和操作的完整程序。STL(标准模板库)支持使用C ++进行泛型编程。每个泛型算法都可以在提供必要操作的任何迭代器上进行操作。它还支持新的算法,容器和集成器。使用C ++语言进行编码很容易。
C++STL(标准模板库)为程序员提供了以下结构,这些结构分为三类:
容器
C ++堆栈
C ++队列
C ++优先级队列
关联容器
C ++映射
C ++位集
C ++多映射
C ++集合
C ++多集
顺序
C ++向量
C ++列表
C ++双端队列
在该库中,编写用于实现复杂数据结构的代码的困难部分已经完成。如果必须使用整数堆栈,那么他要做的就是实现以下代码:stack <int> variable;
现在,任何人都可以通过最小的努力将()和pop()整数压入此堆栈。通过C ++模板的魔力,他可以指定任何数据类型,而不仅仅是整数。标准模板库提供了堆栈的泛型功能。
STL创建的基本设计和思想是由Alexander Stepanov创建的。
1979年,亚历山大·斯蒂芬诺夫(Alexander Stepanov)开始研究泛型编程的初步思想,并开始探索其在软件开发革命中的潜力。大卫·穆瑟(David Musser)早在1971年就已经开发并倡导了泛型编程的某些方面,但它仅限于相当专业的软件开发领域(计算机代数)。
Alexander Stepanov获得了泛型编程领域的全部潜力。他说服了泛型电气研究与开发部门的同事,应该将泛型编程作为软件开发的综合基础。那时,不支持泛型编程领域的任何编程语言。这些人是用编程语言生成泛型编程的。
用于生成泛型库的第一种编程语言是ADA。选择该语言是因为它具有泛型单位功能。ADA库由Stepanov和Musser于1987年出版。它用于列表处理,体现了他们对泛型编程的许多研究结果。
将语言从ADA更改为C ++的原因是由于指针,它具有快速访问权限。Stepanov是其中的C / C ++计算模型,该模型允许通过指针非常灵活地访问存储,这对于实现泛型性而不损失效率至关重要。Stepanov在C和C ++中尝试了许多体系结构和算法公式。Musser参与了这项研究,Meng Lee在1992年加入了Stepanov在HP的项目,并成为主要贡献者。
贝尔实验室的安德鲁·科尼格(Andrew Koenig)对这项工作一无所知,因此他要求Stepanov在ANSI / ISO C ++标准化委员会的一次会议上于1993年11月介绍主要思想。
该委员会的反应是压倒性的,导致科尼希要求在1994年3月的会议上提出正式建议。
惠普决定实施STL(标准模板库),并大大改进了该库。1994年8月,决定在Stepanov,Lee和Musser在标准化过程中开发的此实现在Internet上免费提供。现在,它已成为当今编译器和库供应商提供的许多实现的基础。
参考文献:
https://zh.wikipedia.org/wiki/Standard_Template_Library
http://www.cplusplus.com/reference/stl/