STL_概述_目录

STL是什么?

​ STL(Standard Template Libary):标准模板库,即C++标准库中的一部分(80%)。更准确的说是 C++ 程序设计语言标准模板库。STL是所有C++编译器和所有操作系统平台都支持的一种库,说它是一种库是因为,虽然STL是一种标准,也就是说对所有的编译器来说,提供给C++程序设计者的接口都是一样的。也就是说同一段STL代码在不同编译器和操作系统平台上运行的结果都是相同的,但是底层实现可以是不同的。 令人兴奋的是,STL的使用者并不需要了解它的底层实现。 试想一下,如果我们有一把能打开所有锁的钥匙,那将是多么令人疯狂啊。

​ STL的目的是标准化组件,这样你就不用重新开发它们了。你可以仅仅使用这些现成的组件。STL现在是C++的一部分,因此不用额外安装什么。它被内建在你的编译器之内。

​ STL几乎所有的代码都采用了模板类或者模板函数,这相比传统的由函数和类组成的库来说提供了更好的代码重用机会。

STL组成:

STL大致分为以下几个部分:

——容器(container)

——迭代器(iterator)

——容器适配器(Adapter)

——算法(algorithm)

——函数对象(functor)

——配置器(allocator) //底层实现

在 C++ 标准库中,STL被组织成以下13个头文件:

​ <algorithem>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>

就目前来说,我平时常用的组件是容器、迭代器、算法。
  1. 容器:顾名思义就是用来装东西的 -> 那么一个杯子(容器)想当然的应该有什么操作呢?

    • 。装东西 -> 即让待存储元素进入容器

    • 取东西 -> 即让待取出元素离开容器。

      容器又分为:序列式容器和关联式容器

      • 序列式容器:即内部元素按照进入顺序和存放的位置进行排序。

      • 关联式容器:容器已经有规则,进入容器的元素的位置不是由时机和地点决定的。(老师给排座位,

        ​ 排到哪坐哪)

  2. 迭代器:类似于指针的作用,因为其因为容器存在而存在的,所以我们可以将其想成炸油条的筷子。因为油锅

    ​ (容器)中不能直接用手拿,所以才需要迭代器,我们用它指着油条可以数数,用它夹油条可以移动 油条。

    ​ 实际上迭代器是一个类,这个类封装一个指针。

    并且迭代器是容器和算法之间的桥梁,其中容器负责提供迭代器,算法使用容器提供的迭代器。

  3. 算法:就是对容器及容器内某些操作的步骤,例如我们说操作,夹油条就算一个操作,算是一个基本操作。而

    ​ 夹出所有熟了的油条则需要我们的大脑做出一系列步骤——依次夹起油条,判断其是否熟了,若熟了我 们就夹出,否则就放回。这具体的步骤就是一个算法(或者说依据算法构成的程序)。

    ​ STL提供了大约100个实现算法的模板函数。

概述部分结束,下面是目录:
  • 容器:
  • 迭代器:
  • 算法:

参考文档:https://www.cnblogs.com/ACMan/archive/2012/05/30/2526927.html
https://blog.csdn.net/rl529014/article/details/51154798

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Drdajie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值