IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> STL六大组件 -> 正文阅读

[C++知识库]STL六大组件

前两天有一门考试,忙着复习,便有些懈怠了。也趁着清闲想了想感觉还是有必要把对STL整体来上一篇博客介绍一下的。

STL

首先,什么是STL?

STL

standard template library

标准模板库

STL是C++标准库的重要组成部分,它不仅是一个可以复用的组件库,更是一个包罗万象的数据结构与算法的软件框架。

STL主要有六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器。

简单介绍

?容器:( containers )STL内部封装好的数据结构,从实现的角度来看,容器是一种类模板,即class template.

?算法:( algorithms ) C++在<algorithm>中提供了我们常用的一系列算法。如sort等。但和算法相关的头文件并不是只有<algorithm>,不过该头文件一般来说是STL头文件中最大的,其内函数模板所设计的范围非常之广——比较、交换、排序、查找、遍历、反转、移除……除了<algorithm>之外,常用的还有<numeric>以及<functional>。

?迭代器:( iterator )关于迭代器也有一个专门的头文件<iterator>,在理解上,我们可以将迭代器简单地理解为一个指针,实际上指针也的确是迭代器的一种。但大部分迭代器都远比指针复杂。从实现角度来看,迭代器应该是一种class template,其内重载了++,--等一系列运算符。

?仿函数:( functors )仿函数是使一个类看起来像是一个函数,这样操作的实现原理实际上就是将()进行了重载,即在类中实现了一个operator()?。这样的话这个类就拥有了与函数类似的行为,就是一个仿函数类了。

? 适配器:( adapters )适配器通常是用来修改容器等其他组件接口的STL组件,是一个带有一个参数的类模板。STL中有3种形式的适配器:容器适配器,迭代器适配器,函数适配器。

????????容器适配器:是一个封装了序列容器的模板类,它在一般序列容器的基础上提供了一些不同的功能。容器适配器本质上还是容器,不过此容器的实现大量使用了其它基础容器模板类种已经写好了的成员函数。

????????迭代器适配器:所谓迭代器适配器,其本质上依然是一个模板类,但是,该模板类是基于5种基础迭代器实现的。

????????函数适配器:通过转换或者修改其他函数对象使其功能得到拓展。

?空间配置器:( allocators )在实际应用中我们很少涉及STL的空间配置器,但实际上我们的很多操作又离不开空间配置器的默默支持。空间配置器可以为容器分配并管理内存。正是由于STL库的内存是由空间配置器统一管理的,使得STL库的可用性、可移植性以及使用效率都有了很大的提升。然而,空间配置器既然叫做空间配置器而不是内存配置器,自然有其道理——它不仅仅可以为各个容器管理内存,并且可以向硬盘索取空间。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 07:51:17  更:2022-05-08 07:52:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:57:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码