C++STL学习笔记(第一篇:stl是什么?为什么要学习stl?迭代器在stl中扮演着什么角色?)

目录

前言

STL是什么?

为什么要学习STL?

容器详解

迭代器详解


前言

大家好呀!我是爱敲代码的小🐟儿。

 

从今天起,我就要正式开始学习c++的stl库了。学习呢自然不能光看别人写的,自己也要尝试动手写写,于是我打算将我学的知识以笔记的形式记录下来,方便大家共同学习😊

STL是什么?

先上个很官方的定义:STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。

怎么样,是不是没听懂,其实官方的我也没看太懂😅。咱先看一张图!

 通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的,它们各自的含义如表 1 所示。

STL的组成 含义
容器 一些封装数据结构的模板类,例如 vector 向量容器、list 列表容器等。
算法 STL 提供了非常多(大约 100 个)的数据结构算法,它们都被设计成一个个的模板函数,这些算法在 std 命名空间中定义,其中大部分算法都包含在头文件 <algorithm> 中,少部分位于头文件 <numeric> 中。
迭代器 在 C++ STL 中,对容器中数据的读和写,是通过迭代器完成的,扮演着容器和算法之间的胶合剂。
函数对象 如果一个类将 () 运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象(又称仿函数)。
适配器 可以使一个类的接口(模板的参数)适配成用户指定的形式,从而让原本不能在一起工作的两个类工作在一起。值得一提的是,容器、迭代器和函数都有适配器。
内存分配器 为容器类模板提供自定义的内存申请和释放功能,由于往往只有高级用户才有改变内存分配策略的需求,因此内存分配器对于一般用户来说,并不常用。

 对于我们初学者来说,STL的具体结构我们只用了解就行,比较对于我们大多数人来说,我们会用stl便捷的刷题就行,我们其实不太需要搞懂stl背后的复杂原理,嘻嘻🤣😂😍。

不管stl中还是有两个概念需要我们稍微理解一下的——容器和迭代器😅

  • STL容器就是将运用最广泛的一些数据结构实现出来。容器用来管理某类对象。常用的数据结构:数组(array) , 链表(list), tree(树),栈(stack), 队列(queue), 集合(set),映射表(map)。(其实,容器就是类似数组的单元,可存储 若干个值,且STL容器是同质的,即存储的值类型相同)
  • 迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针;

可能你对这些概念还不是太理解,没关系以后在STL中我们经常会用到它们的,在用的过程中你对这些容器和迭代器慢慢就会有深刻的理解的。

为什么要学习STL?

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小鱼儿哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值