C++ STL概述

STL概述

STL是”Standard Template Library“的缩写,中文译为”标准模板库“;STL是C++标准库的一部分,不用单独安装

C++对模板(Template)支持的很好,STL就是借助模板把常用的数据结构及算法都实现了一遍,并且做到了数据结构和算法的分离;例如,vector的底层为顺序表(数组),list的底层为双向链表,deque的底层为循环队列,set的底层为红黑树,unordered_map(hash_map)的底层为哈希表

STL包含:

  • 容器类
    各种数据结构,如vector,list,deque,set,map等用来存放数据

  • 迭代器
    扮演容器于算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其他衍生变化,从实现角度来看,迭代器是一种将operator*,operator->,operator++,operator–等指针相关操作予以重载的类模板,所有STL容器都附带有自己专属的迭代器,只有容器设计者才知道如何遍历自己容器中的元素

  • 算法
    各种常用算法如sort,search,copy,erase等等

  • 仿函数
    行为类似函数,可做为算法的某种策略,实现的角度来看,仿函数是一种重载operator()的类或者类模板

  • 配接器
    一种用来修饰容器或仿函数或迭代器接口的东西;例如,STL提供的stack,queue,虽然看是容器,其实只能算是一种容器配接器,因为他们的底层完全借助deque,所有操作底层都是deque提供的

  • 配置器
    负责空间配置与管理

vector

C++ STL vector: link.

list

C++ STL list: link.

duque

C++ STL duque: link.

map set

C++ STL map set: link.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值