c++STL库

news2025/7/18 0:34:16
什么是STL
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。
STL的版本
原始版本
    Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神(开放源代码,Linux,git,mysql也是开源的)(与之相对的是闭源,iOS,Windows就是闭源,装Windows的费用被计算在了电脑的价格中),他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本--所有STL实现版本的始祖。
P. J. 版本
    由P. J. Plauger开发,继承自HP版本,被Windows Visual C++采用,不能公开或修改,缺陷:可读性比较低,符号命名比较怪异。被微软的VS系列使用了,负责这个版本的维护和更新的就是微软工程师。
RW版本
    由Rouge Wage公司开发,继承自HP版本,被C+ + Builder 采用,不能公开或修改,可读性一般。
SGI版本
    由Silicon Graphics Computer Systems,Inc公司开发,继承自HP版本。被gcc和g++(Linux)采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程 风格上看,阅读性非常高。我们后面学习STL要阅读部分源代码,主要参考的就是这个版本。
以后可能看到一段代码,在Windows下会崩溃,在Linux下可能不会崩溃。因为是不同版本,Windows是pj版由微软维护;Linux是SGI版本,由开源社区维护。在后面的文章中展现的STL源码是SGI版本
STL的六大组件:
其实只是对STL中的内容进行分类。
仿函数:现在没法描述
算法:对数据处理的方式。比如排序,查找
迭代器:现在没法描述
空间配置器:现在没法描述
容器:就是数据结构
配接器:现在没法描述
STL的学习一般分三层:1.学习使用;2.了解源代码框架,模拟实现;3.扩充STL,就是添加STL中没有的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里首次公开企业级 SpringBoot 实战进阶笔记

Spring Boot 的重要性不需要我多说了吧,Java程序员们应该都懂,不仅面试会被提问,工作中也非常需要spring boot 不知道大家是如何学习Spring Boot的,据我所知,很多开发者会试着在网上找一些开源项目,通过阅…

马上2023了,云原生架构还不懂?阿里云原生架构笔记带你完全拿下

前言 软件架构发展至今,经历了从单体架构、垂直架构、SOA 架构到现在的以微服务、服务网格等云原生技术为主的演变过程,云原生技术发展势不可挡,老生常谈的“云原生”将依然会是未来的热门话题。而且随着数字化转型加速,企业对于…

Spring Data JPA之自动创建数据库表

Spring Data JPA之自动创建数据库表前言Spring Data JPA demo实现步骤导入依赖创建实体类编辑application.yml文件配置数据库连接和jpa配置运行测试总结如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!前言 由于在项目中使用到了Spri…

C++11中篇

文章目录1. 右值引用和移动语义1.1 左值引用和右值引用1.2 左值引用与右值引用比较1.3 右值引用使用场景和意义1.5 完美转发2. default 和delete1. 右值引用和移动语义 1.1 左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性&#…

Java_抽象类

目录 1.抽象类语法 2.抽象类特性 3.抽象类的作用 抽象类概念:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对…

RabbitMQ远程访问

文章目录1. 创建用户2. 关闭防火墙开启端口3. 测试远程访问参考链接背景问题 guest这个用户只能使用localhost登录,而不能使用IP地址登录: amqp://guest:guest127.0.0.1:5672/rabbitVHost 远程无法连接amqp://guest:guest10.10.10.128:5672/rabbitVHost …

Elasticsearch simple(2)ElasticSearch windows本地环境搭建(V8.5.1)

切记安装Kibana的版本要和所安装的elasticsearch版本号完全一致。 这里: elasticsearch-8.5.1 kibana-8.5.1 elasticsearch默认端口为9200; Kibana默认端口为5601。 1 elasticsearch的下载和安装 下载官网:https://www.elastic.co/cn/down…

ArcGIS影像TIF拼接

ArcGIS影像TIF拼接 我们要使用的工具是Mosaic To New Raster 这个工具通过下面的路径找到: (我用的是ArcGIS 10.8) 输入影像 在这里输入多张待拼接的TIF 输出文件和路径 Output Loacation是输出文件的路径,可以是文件夹名称或…

MATLAB | MATLAB海洋、气象数据colormap配色补充包(NCL color tables)

众所周知,海洋、气象、水文等一系列学科绘制图像时,因很多时候涉及要将陆地海洋分开或者应对一些非常特殊的情况,因此有很多非常特别的colormap,我之前虽然做过一些常用colormap的补充包但是依旧是无法完全应对各种特殊的colormap…

C语言-基础

C-基础参考变量/常量左值/右值???字面量/常量变量作用域全局变量与局部变量作用域扩展 python数据与地址存储类autoregisterstaticextern数据类型基本类型整数类型进制数原码/补码/反码int 与 char数值溢出浮点类型字符型字符与整数字符与进制…

Selenium隐藏浏览器和元素截屏实践

文章目录隐藏浏览器介绍示例代码浏览器截图介绍示例代码对整个浏览器页面进行截屏指定特定HTML元素进行截屏隐藏浏览器 介绍 在使用Selenium采集网页数据时,需要不断地调用浏览器。实际上,通过对Selenium的设置,可以达到隐藏浏览器的效果。…

堆 (带图详解)

文章目录1.堆的基本概念1. 概念2.性质1.必须为完全二叉树2.满足大堆/小堆成立的条件3.存储方式1.逻辑结构2.物理结构4. 孩子与父亲之间下标的关系2.堆的基本实现1.push——插入1.代码2. 情况分析情况1情况23. 向上调整算法1.过程分析2. 临界条件的判断2. pop—— 删除1.代码2. …

[附源码]计算机毕业设计JAVA火车票订票管理系统

[附源码]计算机毕业设计JAVA火车票订票管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myba…

【HDU No. 4006】 第k 大的数 The kth great number

【HDU No. 4006】 第k 大的数 The kth great number 杭电OJ 题目地址 【题意】 小明和小宝正在玩数字游戏。游戏有n轮,小明在每轮中都可以写一个数,或者问小宝第k 大的数是什么(第k 大的数指有k -1个数比它大)。 游戏格式为&am…

运维开发实践 - Docker - 容器实现原理

1.Docker容器是什么 按照Docker官网,容器是运行在宿主机上的一个进程,但与宿主机上的其他进程相隔离; 2.容器实现原理 这种隔离机制使用了内核中的namespace和cgroups功能; 2.1.Linux namespace Linux通过将系统的资源放置在…

Redis数据类型之string

文章目录stringⅠ. 增删查改Ⅱ. 加减操作Ⅲ. 数据生命周期Ⅳ. 业务场景 - 高频数据Ⅴ. 注意事项提示:以下是本篇文章正文内容,Redis系列学习将会持续更新 string ● 存储的数据:单个数据,最简单的数据存储类型,也是最常…

Paket在Linux下使用问题

1. 系统软件版本 Linux系统:Debian 10,需安装mono-devel Paket版本:7.1.5 关于Paket的介绍:https://github.com/fsprojects/Paket Paket的发布版本:https://github.com/fsprojects/Paket/releases 2. 使用方法 将…

原来背后都是商业利益,看到网易和暴雪的解约之后,原来是要定以后的KPI,坐地起价,但是一个时代已经结束了,都留在了记忆之中

1,大瓜新闻,2023年1月暴雪游戏中国将不会续约?? 2,原因是主要坐地起价,提高分成设置KPI 还好网易有自研游戏,估计早知道会有现在这样的情况。 提前做好了准备。还记得有个公司叫 九城吗&#x…

Linux操作系统~带你理解文件系统与软硬链接

目录 1.C语言中的FILE和文件描述符对应的file 2.Linux的EXT系列的文件系统 (1).block group中六个部分的内容 inode索引结点相关 Q:这两个inode有什么不同? (2).一个文件的inode和对应的block如何关联…

off-by-one (b00ks)

前言 个人简略记录,过程不详细 gdb开始调试 vmmap查看程序基地址为 0x555555400000 继续运行,输入auth search hollk关键字,auth存放的地址可以找出为:0x555555602040 圈起来的是溢出的 \x00 创建两个books 因为图书的结构体指…