栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL基础概念

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STL基础概念

文章目录
    • STL概论
    • STL基本概念
    • 六大组件简介
    • STL六大组件的交互关系
    • 三大组件
    • STL优点

STL概论

数据结构和算法的一套标准,并且降低他们之间的耦合关系,以提升各自的独立性、弹性、交互操作性(相互合作性,interoperability)

STL基本概念

STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称。现在主要出现在 c++中,但是在引入 c++之前该技术已经存在很长时间了。

STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator),容器和算法之间通过迭代器进行无缝连接。STL 几乎所有的代码都采用了模板类或者模板函数,这相比传统的由函数和类组成的库来说提供了更好的代码重用机会

六大组件简介

STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。

容器:
各种数据结构,如vector、list、deque、set、map等,用来存放数据,从实现角度来看,STL容器是一种class template。

算法:
各种常用的算法,如sort、find、copy、for_each。从实现的角度来看,STL算法是一种function tempalte.

迭代器:
扮演了容器与算法之间的胶合剂,共有五种类型,从实现角度来看,迭代器是一种将operator* , operator-> , operator++,operator–等指针相关操作予以重载的class template. 所有STL容器都附带有自己专属的迭代器

仿函数:
行为类似函数,可作为算法的某种策略。从实现角度来看,仿函数是一种重载了operator()的class 或者class template

适配器:
一种用来修饰容器或者仿函数或迭代器接口的东西。

空间配置器:
负责空间的配置与管理。从实现角度看,配置器是一个实现了动态空间配置、空间管理、空间释放的class tempalte.

STL六大组件的交互关系
  • 容器通过空间配置器取得数据存储空间,
  • 算法通过迭代器存储容器中的内容,
  • 仿函数可以协助算法完成不同的策略的变化,
  • 适配器可以修饰仿函数。
三大组件
容器  
	序列式容器
	关联式容器   自动排序、有一个值作为key,起到索引作用
算法
	质变算法
	非质变算法
迭代器
	双向迭代器   支持 ++ --
	随机访问迭代器  支持跳跃式访问容器中元素

常用的数据结构:数组(array),链表(list),tree(树),栈(stack),队列(queue),集合(set),映射表(map),根据数据在容器中的排列特性,这些数据分为序列式容器和关联式容器两种。

序列式容: 默认不会对数据进行排序。比如:vercor
关联式容器: 会对数据进行默认排序。比如map

质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除 等

**非质变算法:**是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历等

STL优点
  • 高重用性
  • 高性能
  • 高移植性
  • 内建在编译器中
  • 不用考虑底层实现,直接使用
  • STL 的一个重要特性是将数据和操作分离
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857199.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号