“ STL”和“ C ++标准库”之间有什么区别?

标准模板库(STL)是C ++编程语言的软件库,影响了C ++标准库的许多部分。它提供了四个组件,分别称为算法,容器,函数和迭代器。请注意,术语“ STL”或“标准模板库”在ISO 14882 C ++标准中没有显示。因此,将C ++标准库称为STL是错误的,即STL和C ++标准库是2种不同的东西,前者是后者的子集。

STL由

货柜

STL包含序列容器和关联容器。容器是存储数据的对象。标准序列容器包括向量,双端队列和列表。标准关联容器包括set,multiset,map,multimap,hash_set,hash_map,hash_multiset和hash_multimap。还有一些容器适配器队列,priority_queue和堆栈,它们是具有特定接口的容器,使用其他容器作为实现。

迭代器

迭代器是使程序员能够遍历容器的对象。STL实现五种不同类型的迭代器:输入(用于读取值序列),输出(用于写入值序列),正向(可读取,写入和向前移动),双向(类似于正向)迭代器,但也可以向后移动)和随机访问(一次操作可自由移动任意数量的步骤)。迭代器是允许STL具有通用性的主要功能。

演算法

STL中的算法是专门设计用于元素范围的功能的集合。范围是可以通过迭代器或指针访问的任何对象序列,例如一些STL容器的数组或实例。STL中的算法示例:sort(对范围中的元素进行排序),binary_search(测试值是否按排序顺序存在),min_element(返回范围中的最小元素)等。请注意,所有这些算法都可以应用于任何可接受的数据类型作为模板。

在C ++编程语言中,C ++标准库是用核心语言编写的类和函数的集合,并且是C ++ ISO标准本身的一部分。C ++标准库提供了几个通用容器,利用和操作这些容器的函数,函数对象,通用字符串和流(包括交互式和文件I / O),对某些语言功能的支持以及日常任务(例如查找正方形)的功能数字的根。以下是C ++标准库的一些功能-

这些库用于处理C ++中可用的不同类型的流。例如,流通常表示文件流,此类可用于创建文件,向文件写入信息以及从文件中读取信息,流表示字符串流,通常用于操作字符串等。

货柜

这是一个类的集合,这些类用于以各种数据类型(例如向量,集合,映射,堆栈,队列等)存储数据。这些是STL的组成部分。

普通图书馆

库,例如算法,时间计时,迭代器,内存等。

数值库

该库是C ++程序可以用来执行半数值运算的组件的集合。例如,<complex>定义了一个类模板,并提供了许多表示和处理复数的函数,<random>用于生成(伪)随机数,等等。

穿线

这是C ++ 11中引入的库,基本上处理并发。

C标准库

C标准库中的每个标头都以不同的名称包含在C ++标准库中,该名称是通过删除.h并在开头添加“ c”生成的;例如,“ time.h”变为“ ctime”。