当前位置: 首页 > news >正文

C++ STL

1. 什么是STL

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且

是一个包罗数据结构与算法的软件框架

通俗来说:将常见的数据结构(顺序表、链表、栈、队列、堆。。。。)以模板的方式进行封装

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 Systems,Inc公司开发,继承自HP版 本。被GCC(Linux)采用,可移植性好,

可公开、修改甚至贩卖,从命名风格和编程 风格上看,阅读性非常高。我们后面学习STL要阅读部分源代码,

主要参考的就是这个版本。

3. STL的六大组件

容器:实际就是以模板的方式封装出来的常见的数据结构

算法:用户可以定制算法功能

如何做到算法和具体数据结构无关:迭代器

STL需要自己管理内存;使用空间配置器(STL的内存池)

负责空间申请和释放,以及对这些空间进行管理

适配器(配接器):

http://www.lryc.cn/news/19316.html

相关文章:

  • java程序员要了解的sql语句优化技巧大全
  • SQL零基础入门学习(十)
  • Pytorch从零开始训练模型【识别数字模型】并测试
  • Leetcode DAY 44: 完全背包 and 零钱兑换 II and 组合总和 Ⅳ
  • 谷歌搜索留痕的技术公式【2023年新版】
  • 2023财年Q4业绩继续下滑,ChatGPT能驱动英伟达重回巅峰吗?
  • 博客管理系统--项目说明
  • 一文带你了解MySQL的Server层和引擎层是如何交互的?
  • CVNLP 常用数据集语料库资源汇总
  • lisp 表达式求值规则
  • Sophos Firewall OS (SFOS) 19.5 MR1 - 同步下一代防火墙
  • 为什么很多人转行IT考虑后端开发Java?
  • WebDAV之π-Disk派盘+Cloud Player
  • Python-datetime、time包常用功能汇总
  • Spring MVC 源码- HandlerAdapter 组件(四)之 HandlerMethodReturnValueHandler
  • 2023面试必备:web自动化测试POM设计模式详解
  • 【人工智能 AI】Robotic Process Automation (RPA) 机器人流程自动化 (RPA)
  • ubuntu/linux系统知识(37)systemd管理临时文件的方法systemd-tmpfiles
  • 云计算专业和计算机专业哪个好就业?
  • electron sha512 checksum mismatch
  • 使用Chemistry Development Kit (CDK) 来进行化学SMILES子结构匹配
  • CMake模块的使用和自定义模块
  • jvm调优参数配置
  • Leetcode.1567 乘积为正数的最长子数组长度
  • 部分库与使用方法总结(自用)
  • C++实现日期类
  • 想成为一名专业黑客,但不知道从哪里学起?我来教你。
  • VMware ESXi 7.0 U3k Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)
  • 新的计算方法:预测益生菌在不同生长条件下的相互作用
  • python自学之《21天学通Python》(13)——第16章 数据库编程