什么是STL?

大家好,我是情报小哥~
**1、什么是stl **
stl库英文名叫standard template library,标准模板库,并且它属于标准库的一部分,前面小哥跟大家讲解模板的相关知识就是为其进行铺垫的。
stl主要是由一些模板函数和模板类构成的,其包含了c++程序开发中一些非常通用的数据结构实现与算法封装,从而达到了非常良好的软件复用和扩展能力,当然其背后带来的是应用程序开发的高效,你不用再去徒手编辑各种数据结构和算法来使用,其实现的高效和稳定也减少了程序bug。
而对于c语言而言目前暂时没有这样的库,大部分都是各大厂家整理的,或者是一些大牛自己开源的等等,这样就难以形成一个比较好的标准,不太便于程序员代码之间的交流和软件的复用。
stl库既然是一个库就跟标准库一样,如果你觉得方便,或者有这块需求,直接白嫖,如果你觉得stl实现得不够好,或者需改良,也可以自己来编写。
**2、stl的组成 **
对于stl主要分为如下6大组件 :
下面小哥简单的介绍每个组件:
**容器 : **是一些用于存储数据的数据结构,比如链表、队列、栈等等,大部分都是类模板。
**算法 : **也就是我们平时提到的各种算法,比如排序,查找等等,大部分都是一些函数模板,
**迭代器 : **名字看起来比较高大上,其实可以认为它就是一个“智能指针”,用于遍历容器,所以每种容器都有自己的迭代器用来遍历。
**分配器 : **主要是用于辅助容器分配和管理空间。
**仿函数 : ** 主要是与算法结合,因函数指针无法满足c++抽象需求,通过重载操作符(),来实现类似函数调用的过程。
**适配器 : **其名称就可以看出,主要是用于接口的相互转换,从而协调多种端口,容器、仿函数、迭代器都可以与适配器结合,类比电源适配器进行电压转换。
那么下面小哥简单的通过一个图来描述这6大组件之间的关联,以便大家更好的理解。
分配器为容器分配数据空间,而迭代器就是为了遍历容器,算法通过迭代器来访问容器,仿函数使得算法更加的灵活,而这些适配器可以为外界提供新的接口。
**3、stl的容器的使用体验 **
这里通过一个简单的容器操作来体验一下最基础的stl使用:
参考例子:
1#include
2#include
3#include //向量(与数组类似)
4#include //队列
5
6using namespace std;
7
8int main(int argc, char *argv[])
9{
10 //1、向量容器
11 vector vr(5); //通过vertor容器类模板定义一个int类型的向量vr
12
13 cout<< vr size: <14
15 for(int index = 0; index < vr.size(); index++)
16 {
17 vr[index] = index + 1; //直接以数组方式访问即可
18 cout<< vr[<19 }
20
21 //2、队列容器适配器(fifo--即先进先出)
22 queue qf; //通过queue类模板创建一个队列
23
24 for(int cnt = 0 ;cnt < 5;cnt++)
25 {
26 qf.push((float)cnt+0.1); //进行入队操作
27 cout<< queue in : <<(float)cnt+0.1<28 }
29
30 while(!qf.empty())
31 {
32 cout<< queue out: <33 qf.pop();//进行出队操作
34 }
35
36 return exit_success;
37}
运行结果:
只需要包含相应的头文件即可使用相应的模板来供应用程序使用,比如例子中使用的队列等,不需要我们像c语言那样再徒手编写队列了,简直不要再方便了~
当然stl库远比上面复杂得多,后面小哥还会为大家慢慢道来~
**最 后 **这里小哥就介绍了c++中白嫖stl库。本系列文章还会持续更新,以最通俗易懂的方式跟大家谈谈c++,期待您的关注与支持~

合作共赢:美格智能独家中标中国联通5G数传模组采购项目!
基于SPGD控制算法自适应光学系统的伪随机序列的设计与要求
2018中国LED显示屏行业分析报告
AMD锐龙9000系列处理器是真是假?
选择CDN这三个关键很重要
什么是STL?
“法国温控测试先驱”——捷龙热流仪Dragon
光伏并网智能自动化运维方案简述
工业自动化产品研发生产企业伟创电气发布2022第一季度报告
工程师写博客有什么好处
谷歌Gemini被曝算力达GPT-4五倍,手握TPU王牌碾压OpenAI
受新冠肺炎疫情影响,苹果宣布暂时关闭法国17家门店
笔记本电池如何选购?
盘点十大智能传感器品牌
联想提供F41笔记本电池放电过快解决方案
QEDit:零知识证明可加强区块链保密需求
废电池的处理方法大全
2018亚洲消费电子展,科技与汽车的融合日趋紧密
创意USB设备介绍
全球备战5G商用 毫米波将成未来主战场