STL学习之概要
STL简单学习
STL概述
- STL是标准模板库
- 是标准c++库的子集
- 具有通用、强大的功能
(PS:STL库就是我们一直懵懵懂懂在用的std命名空间,原谅我读书少才知道)
STL构成
- container(容器)
- algorithm(算法)
- iterator(迭代器)
其中三者关系如图所示:
算法
模板函数:如容器元素的比较、交换、查找、遍历、复制、修改、删除、排序和合并等操作
所有的算法都包括在相应的头文件中:
<algorithm>算法
<numeric>数值算法
<functional>对象和相应的函数
迭代器
类似于c/c++中的指针,算法通过迭代器来定位和操作容器中的元素
迭代器常用的有四种:
- iterator:指向容器中存放元素的迭代器,用来正向遍历
- const_iterator:与iterator相似,但是只能用来读取,不能用作操作
- reverse_iterator:指向容器中存放元素的反向迭代器,用来反向遍历
- const_reverse_iterator:与reverse_iterator相似,但是只能用来读取,不能操作
迭代器常用运算:
++:正向移动迭代器
- -:反向移动迭代器
*:返回迭代器目前所指向的元素值
容器
就是数据结构,例如链表、栈和队列等
对于他来说这些容器都拥有自己的头文件,例如向量容器vector等
一下是STL常用容器图: