C++标准模板库(STL)

目录

 

00 Intro

01 STL模板库历史

STL容器主要包括(敲黑板): 容器(container) 算法(algorithm) 迭代器(iterator)

02 STL容器的使用(参考:[①](https://blog.csdn.net/qq_33278461/article/details/10005863),[②](https://blog.csdn.net/weixin_49303682/article/details/122137217))

我们先用表格讲一下STL容器的名称和区别

03 STL库-vector动态数组

vector数组简介:vector数组是一个能存放任意数据类型(类,结构,普通变量类型等)的动态数组,在数据结构中就相当于顺序储存的线性表,寻找元素非常快,但是插入元素的时间却很大(list是一个双向链表,在同一个位置插入大量的数据时速度很快,但是查找的速度就会慢很多)

vector数组在初始化的时候,需要加上头文件

定义数组时,切记不可像int ,float ,double ,char一样直接定义

时间复杂度:O(n)

04 STL库-map(set)[2]

map的作用:访问地址符(篇幅有限,后面还有栈和队列,我们简单讲一下使用方法)

在map后加一个括号set是因为set拥有去重的功能,配合代码如下:

05 STL库-stack(栈)

顺序进出(入栈,出栈)

06 STL库-queue(队列)[3]

AC题解:

07 有必要的解释:


00 Intro

> 前面咱们主要讲的都是算法类的(例如:[高精度算法](https://blog.csdn.net/weixin_66580750/category_12708323.html),[深度优先搜索(DFS)&广度优先搜索(BFS)](https://blog.csdn.net/weixin_66580750/category_12708396.html),[排序算法](https://blog.csdn.net/weixin_66580750/category_12709035.html))
那么今天咱们讲的简单一点,把知识点往回倒,来介绍一下C++标准模板库(STL)

>>本文均同步[CSDN-Ysjt | 深](https://blog.csdn.net/weixin_66580750?type=sub&spm=1001.2014.3001.5348)
点击链接关注!!!
>>> 话不多说进入正题:

01 STL模板库历史

对于软件界来说,做出一个可重复利用的东西是一直以来的梦想,为了实现这个梦想,就有许多我们熟悉的东西被发明创造了出来(后面我也会讲),例如**函数(functions),类别(classes),函数库(function libraries),类别库(class libraries)**

>为了建立数据结构和算法的一套标准,并且降低他们之间的耦合关系,以提升各自的独立性、弹
性、交互操作性(相互合作性,interoperability),诞生了STL。
STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称。现在主要
出现在 c+ +中,但是在引入 c++之前该技术已经存在很长时间了。
-- 选自[C++ - STL标准库](https://blog.csdn.net/weixin_49303682/article/details/122137217)

STL容器主要包括(敲黑板): 容器(container) 算法(algorithm) 迭代器(iterator)

02 STL容器的使用(参考:[①](https://blog.csdn.net/qq_33278461/article/details/10005863),[②](https://blog.csdn.net/weixin_49303682/article/details/122137217))

我们先用表格讲一下STL容器的名称和区别
容器 实现 查询 插入 删除 其它
vector(本篇讲解) 一段内存连续区域 查询下标O(1) 值查询O(N) 尾部O(1) 中间O(N) 尾部O(1) 中间O(N) 空间只增不减,空间够,1.5-2倍扩容
list 双向链表 O(N) O(1) O(1)
deque 中控器map+多个连续缓冲区 查询下标O(1) 值查询O(N) 尾部O(1) 头部O(N) 尾部O(1) 头部O(N) list&vector(见上)折中
map(set)(本篇讲解) 红黑树(无重复,有序) 下标访问log2(N) log2(N) log2(N)
stack(本篇讲解) deque 插入栈顶O(1) 删除栈顶O(1)
queue deque 插入队尾O(1) 插入队头O(1)

03 STL库-vector动态数组

vector数组简介:vector数组是一个能存放任意数据类型(类,结构,普通变量类型等)的动态数组,在数据结构中就相当于顺序储存的线性表,寻找元素非常快,但是插入元素的时间却很大(list是一个双向链表,在同一个位置插入大量

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值