STL六大组件简介

本文介绍了STL的六大组件,重点讲解了容器中的vector、list和deque,以及容器适配器stack、queue和priority_queue。vector在访问效率上优于list,但在中间插入和删除操作上效率较低。适配器可以改变容器接口,如stack和queue通常使用deque作为底层容器以提高性能。
摘要由CSDN通过智能技术生成

STL中的六大组件包括:容器、容器适配器、算法、迭代器、仿函数、空间配置器。
这里写图片描述
STL六大组件的相互关系:容器通过空间配置器取得数据存储空间;算法通过迭代器存取数据存储容器内容;仿函数可以协助算法完成不同的策略变化;空间适配器可以修饰或套接仿函数。

容器

下面我们总结容器这个组件。
这里写图片描述
纠错:multimap、multiset关键字可以重复。

1.vector

优点是访问元素效率高,因为是连续空间,所以内存使用率高,缓存使用率也高。缺点是中间位置插入和删除不方便,效率低。

2.list

优点是中间位置进行插入、删除方便,但访问效率不高。缺点是随机访问的效率低,需要遍历O(N)的时间复杂度。

3.双端队列的原理

所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速。而在中间插入元素则会比较费时,因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候改变自身大小,完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值