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》

 🌟结束语

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

目录
相关文章
|
Java Linux Android开发
Android基础知识:解释什么是Android(安卓)操作系统?
Android基础知识:解释什么是Android(安卓)操作系统?
3327 0
|
测试技术 应用服务中间件 数据库
什么是稳定性测试?
什么是稳定性测试?
2191 0
|
编译器 数据中心 开发者
安谋科技(Arm China)别再平:Arm Neoverse 软件生态介绍
2023年8月15日,系列课程第二节《Arm Neoverse 软件生态介绍》正式上线,由安谋科技(Arm China)高级软件经理别再平主讲,内容涵盖:Arm Neoverse 介绍,Arm Neoverse 软件生态系统,Arm Neoverse 软件迁移。
安谋科技(Arm China)别再平:Arm Neoverse 软件生态介绍
|
计算机视觉
二阶段目标检测网络-Cascade RCNN 详解
二阶段目标检测网络-Cascade RCNN 详解
525 0
|
缓存 Ubuntu Linux
docker的安装和常用命令
最近学习了docker做了一些笔记,跟朋友们分享一下
868 0
STM32:串口发送/接收HEX数据包代码篇(内含:实物图接线图+代码部分+个人笔记)
STM32:串口发送/接收HEX数据包代码篇(内含:实物图接线图+代码部分+个人笔记)
1389 0
STM32:串口发送/接收HEX数据包代码篇(内含:实物图接线图+代码部分+个人笔记)
|
存储 Java
Java中static详解和JVM内存分配
Java中static详解和JVM内存分配
Java中static详解和JVM内存分配
|
设计模式 XML 数据可视化
降低前端业务复杂度新视角:状态机范式
无论做业务需求还是做平台需求的同学,随着需求的不断迭代,通常都会出现逻辑复杂、状态混乱的现象,维护和新增功能的成本也变的十分巨大,苦不堪言。下图用需求、业务代码、测试代码做对比:
469 0
降低前端业务复杂度新视角:状态机范式
|
存储 SQL JSON
站在Java的视角,深度分析防不胜防的小偷——“XSS”
站在Java的视角,深度分析防不胜防的小偷——“XSS”
11628 0
 站在Java的视角,深度分析防不胜防的小偷——“XSS”