STL简介

简介: STL简介

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等

> 座右铭:松树千年终是朽,槿花一日自为荣。

> 目标:了解c++中的STL库

> 毒鸡汤:路难行,行路难,-身汗水,满心长。脚下百里路,头顶艳阳天。坚定如磐石,信念似火烧。

> 望小伙伴们点赞👍收藏✨加关注哟💕💕

🌟前言

咱们今天很轻松,咱们讲讲故事,大家拿好小板凳。😘😘😘

⭐什么是STL

概念:

STL (standard template libaray - 标准模板库):是 C++ 标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

也就是说,咱们前面数据结构都可以库,顺序表,单链表,栈,队列....都可以调用库,有人就说,那学数据结构干毛,直接不学咯,我反手就是一巴掌,学习底层代码,是学习的必经之路,咱要脚踏实地,切不可一步登天。

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

可想而知,咱们c++的库是多样化的,相信咱这里也大佬,觉得目前STL用起来不爽,自己写一个,也行,正所谓每个勇士都需适合自己的刀,方可砥砺前行,咱们就先用用他人的,用起来还是合大众的。

STL的六大组件

容器:放数据---组织数据---本质:就是对常见的数据结构进行封装

算法:相当于把迭代器 和 容器 结合到了一块,算法写好以后每个容器都可以使用,就是迭代器的功劳。

迭代器:算法写好以后,让每个容器都可以使用。

适配器:STL迭代器适配器是指一些函数和类,它们可以将一个迭代器转换成另一个迭代器,或者修改一个迭代器的行为。这些适配器可以帮助我们更方便地使用STL中的算法和容器。

仿函数:STL仿函数(Function Object)是一种行为类似于函数的对象,它可以像函数-样被调用,但是它可以保存状态,可以有自己的成员变量和成员函数。STL仿函数可以作为STL算法的参数,用于指定算法的具体行为。

空间配置器:STL自己封装一个内存池---高效空间申请和释放以及对空间进行管理。

这里就了解了解,见见肉长啥个子样。🤪🤪🤪

STL的重要性

无论是在笔试还面试,都考察的重点。

比如说我们学习栈时的一道题目:用两个栈实现队列_牛客题霸_牛客网

怎么学习STL

在一本书上是这样写的《The C++ Standand Library》

 🌟结束语

      今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小说手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

目录
相关文章
|
小程序 API
微信小程序如何点击按钮,复制文本到粘贴板
微信小程序如何点击按钮,复制文本到粘贴板
微信小程序如何点击按钮,复制文本到粘贴板
|
3月前
|
移动开发 前端开发 JavaScript
HTML表单验证:确认input元素输入为具有特定整数和小数位数的数值。
将上述JavaScript代码与HTML一同使用,便可以确保用户输入的数值符合特定的格式要求。特别要注意,在实际的生产环境中,仅仅依靠前端验证是不够的。为了安全起见,后端也应该实施相应的验证措施,以防止不匹配格式的数据通过其他手段提交到服务器。
231 74
|
测试技术 应用服务中间件 数据库
什么是稳定性测试?
什么是稳定性测试?
2148 0
|
计算机视觉
二阶段目标检测网络-Cascade RCNN 详解
二阶段目标检测网络-Cascade RCNN 详解
505 0
|
网络协议 网络虚拟化 网络架构
eNSP | Vlan划分及其OSPF动态路由
eNSP | Vlan划分及其OSPF动态路由
eNSP | Vlan划分及其OSPF动态路由
|
消息中间件 监控 NoSQL
工作用Go: 异步任务怎么写4 | Trace: 异步任务还能进行链路追踪么?
工作用Go: 异步任务怎么写4 | Trace: 异步任务还能进行链路追踪么?
816 0
工作用Go: 异步任务怎么写4 | Trace: 异步任务还能进行链路追踪么?
|
弹性计算 云计算
阿里云服务器ECS是什么?ECS英文全称?
阿里云ECS英文全程Elastic Compute Service,弹性计算服务的意思,ECS是阿里云服务器的英文名,一台ECS实例就是一台阿里云服务器
1180 0
阿里云服务器ECS是什么?ECS英文全称?
|
运维 监控 JavaScript
「开发者说」实验室上钉钉--南大研究生的数字化校园故事
钉钉应用开发不仅完成了实验室数字化运营的定制需求,这段落地的应用开发经验也丰富了我的实践经历,成为我的实习面试宝典。
1209 0
「开发者说」实验室上钉钉--南大研究生的数字化校园故事
|
缓存 数据库连接 数据库
DbVisualizer 数据库连接工具:添加数据库驱动方法。dbvis搜索不到驱动文件夹下的驱动解决方法
DbVisualizer 数据库连接工具:添加数据库驱动方法。dbvis搜索不到驱动文件夹下的驱动解决方法
1224 0
DbVisualizer 数据库连接工具:添加数据库驱动方法。dbvis搜索不到驱动文件夹下的驱动解决方法
|
SQL 消息中间件 数据采集
Trace告警配置最佳实践
阿里云日志服务(SLS)提供了Log,Metric,Trace等三种数据快速接入的能力,同时也提供了丰富的分析功能和可定制化的Dashboard的能力,客户可以利用SLS快速的搭建可观测性平台,让用户更加关注于分析,降低用户接入各类数据的门槛。本文主要讲述应用接入SLS Trace服务后,针对各种场景化如何配置告警。
1157 0