C++ STL 初步
STL(Standard Template Library)即标准模板库,善用STL库,能有效的减少代码量,提高程序执行效率。
本文旨在介绍STL的一些基础。
STL基础内容
STL由六大组件构成:容器(Container)、迭代器(Iterator)、算法(Algorithm)、仿函数(Function object)、迭代适配器(Adaptor)和空间配制器(allocator)。前三个是STL的三个主要组件。
- 容器
- 序列式容器(Sequence containers)
每个元素都有其固定的位置,取决于插入的时间和位置,与元素值无关。eg: vector(向量)、list(链表)、deque(双端队列)… - 关联式容器(Associated containers)
元素的位置取决于容器底层结构的排序规则,与插入的顺序无关。eg: set(集合)、map(映射)… - 容器适配器(congtainer adapters)
不具备容器等某些特性(迭代器…),但又由容器封装完成。eg: stack(栈)、queue(队列)、priority_queue(优先队列)…
- 迭代器
迭代器可以近似理解为c语言中的指针,它主要支持两个运算符:自增(++)和解引用(单目运算符*),自增运算符用来移动迭代器的位置,解引用运算符可以引用当前迭代器位置的元素并且可以修改当前元素。以及其他一些运算符:==、!=、=。
迭代器由以下方式定义:1
vector<int>::iterator it;///声明int类型的vector的迭代器it
- 算法
STL中自带约百来个模板函数,常用的有sort、min、max、swap、find、reverse…正是这其中的算法,有效的减少了编写程序的代码量,提高了程序的执行效率。
共有函数
1 | begin();///返回容器起始的迭代器 |
参考文献:
OI Wiki: https://oi-wiki.org
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.