【C++】STL简介

成交只是一个开始,成交之后建立一个恒久的关系,你永远都是我的。💓💓💓

目录

  ✨说在前面

🍋STL简介

•🌰1.什么是STL?

•🌰2.STL的版本

•🌰3.STL的六大组件

•🌰4.STL的重要性

 • ✨SumUp结语


  ✨说在前面

亲爱的读者们大家好!💖💖💖,我们又见面了,上一篇文章我带大家学习了C++的模板初阶。如果大家没有掌握好相关的知识,上一篇篇文章讲解地很详细,可以再回去看看,复习一下,再进入今天的内容。

我们今天简单给大家介绍一下C++标准模板库——STL。STL是C++标准库的重要组成部分,如果大家准备好了,那就接着往下看吧~

  👇👇👇
💘💘💘知识连线时刻(直接点击即可)

【C++】模板初阶

  🎉🎉🎉复习回顾🎉🎉🎉

        

 博主主页传送门:愿天垂怜的博客

 ​​​

 ​​​​

🍋STL简介

•🌰1.什么是STL?

STL是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。1994 年,STL 被正式纳入 C++ 标准中。STL 是“Standard Template Library”(标准模板库)的缩写。STL 是 C++ 标准库的一部分,不用单独安装。

标准模板库(STL),它的基本概念就是把数据和操作分离,含有容器(Container)、算法(Algorithm)、迭代器(Iterator)等组件。

​​​​

•🌰2.STL的版本

🔥原始版本

Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本--所有STL实现版本的始祖。

🔥P.J.版本

P. J. Plauger开发,继承自HP版本,被Windows Visual C++采用,不能公开或修改,缺陷:可读性比较低,符号命名比较怪异。

🔥RW版本 

Rouge Wage公司开发,继承自HP版本,被C+ + Builder 采用,不能公开或修改,可读性一般。

🔥SGI版本

Silicon Graphics Computer SystemsInc公司开发,继承自HP版 本。被GCC(Linux)采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程 风格上看,阅读性非常高。我们后面学习STL要阅读部分源代码,主要参考的就是这个版本。

 ​​​​

•🌰3.STL的六大组件

通常认为,STL 是由容器、算法、迭代器、函数对象(又称仿函数)、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的。

🔥容器(Containers)

容器是STL中最基本的组件,用于存储和管理数据。STL提供了多种不同类型的容器,包括序列容器(如vector、list、deque)和关联容器(如set、map、multiset、multimap)等。这些容器提供了不同的特性和性能,开发者可以根据具体需求选择合适的容器。

  • 序列容器强调元素的顺序,如vector、list、deque等。它们允许通过索引或迭代器来访问元素。
  • 关联容器内部使用树或哈希表等数据结构,支持通过键来快速访问元素,如set、map、multiset、multimap等。这些容器通常会自动对元素进行排序。

🔥算法(Algorithms)

STL包含了大量的算法,如排序(sort)、查找(find)、遍历(for_each)等。这些算法具有高度的重用性和通用性,可以在不同的容器上进行操作。算法通过迭代器来访问容器中的元素,从而实现了算法与容器的解耦。

🔥迭代器(Iterators)

迭代器是STL中用于遍历容器元素的工具,它提供了一种统一的方式来访问容器中的元素。迭代器分为多种类型,如输入迭代器、输出迭代器、正向迭代器、双向迭代器和随机访问迭代器等。不同类型的迭代器提供了不同的功能,以满足不同的遍历需求。

🔥仿函数(Functors)

仿函数是STL中的一个重要概念,它允许将函数对象作为参数传递给算法,从而实现更加灵活和通用的操作。仿函数类似于函数指针,但它更加灵活,可以包含状态信息。STL提供了一些内置的仿函数,同时也支持用户自定义的仿函数。

🔥适配器(Adapters)

适配器是一种用来修饰容器、迭代器或函数对象接口的组件。适配器提供了一种机制,使得不同的组件之间可以相互协作。STL中常见的适配器包括stack、queue和priority_queue等,它们通过封装底层容器来实现不同的数据结构和访问方式。

🔥分配器(Allocators)

分配器是STL中用于内存管理的组件,它负责为容器分配和释放内存。STL中的容器在实现时通常使用分配器进行内存分配。不同的分配器可以满足不同的内存分配策略和需求。通过自定义分配器,开发者可以更好地控制内存的使用情况,提高程序的性能。

 ​​​​

•🌰4.STL的重要性

1.在笔试中

把二叉树打印成多行

重建二叉树

用两个栈实现队列

2.在面试中

3.在工作中

网上有句话说: 不懂 STL ,不要说你会 C++” STL C++中的优秀作品,有了它的陪伴,许多底层 的数据结构以及算法都不需要自己重新造轮子,站在前人的肩膀上,健步如飞的快速开发。

 • ✨SumUp结语

到这里本篇文章的内容就结束了,本节介绍了C++中STL的相关知识,在后面将会逐一讲解它的组件和应用。希望大家能够认真学习,打好基础,迎接接下来的挑战,期待大家继续捧场~💖💖💖

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值