C++学习篇(5)

更多精彩请关注微信公众号“爱折腾的码农”,如果大家感兴趣的,可以多多分享关注微信公众号(你的关注是我写下去的动力图片图片图片),二维码见下图。
在这里插入图片描述

本篇内容总结STL大体框架,接下来几篇文章会详细介绍空间配置器、序列式容器(vector、list、deque)、关联式容器(map、unordered_map)的实现原理,如果大家对我写的内容感兴趣,欢迎关注微信公众号点赞,这也可以督促我尽快写完STL部分内容。

简介:STL的六大组件

容器、算法、迭代器、仿函数、配接器、空间配置器。

容器

    各种数据结构,其实就是用来存放数据的,例如:vector、list、deque、map

、unordered_map,其分为两种:序列式容器和关联式容器。从底层实现上来说是一种类模板。

序列式容器(顺序容器)
vector可变大小数组。支持快速随机访问,在尾部之外的位置插入或删除元素可能很慢。

deque

双端队列。支持快速随机访问。在头尾位置插入或删除速度很快
list双向链表。只支持双向顺序访问。在list中任何位置进行插入或删除操作速度都很快
forward_list单向链表。只支持单向顺序访问。在链表任何位置进行插入或删除操作速度都很快
array固定大小数组。支持快速随机访问,不能添加或删除元素
string与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入或删除速度快

 

关联式容器
按关键字有序保存元素
map关联数组:保存关键字-值对
​set关键字即值,只保存关键字的容器
multimap关键字可重复的map
multiset关键字可重复出现的set
无序集合
unordered_map用哈希函数组织的map
unordered_set用哈希函数组织的set
unordered_multimap哈希函数组织的map:关键字可重复出现
unordered_multiset哈希函数组织的set,关键字可重复出现

 

算法

    通俗讲就是对容器中数据的处理方法,常见的算法有sort、search、copy等,实现上来说是一种函数模板。

迭代器

    作为容器和算法之间的胶合剂,就是“泛型指针”,从实现上来说就是将operator*、operator->、operator++、operator--等指针操作的类模板。

仿函数

    行为类似函数,可作为算法的某种策略,从实现上来说就是重载operator()的类或类模板。

配接器

    用来修饰容器/仿函数/迭代器接口的。

空间配置器

    负责空间分配和管理,从实现上来说就是实现了动态空间分配、空间管理、空间释放的类模板。

六大组件关系如下

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值