STL学习之概要

STL简单学习

STL概述

  • STL是标准模板库
  • 是标准c++库的子集
  • 具有通用、强大的功能

(PS:STL库就是我们一直懵懵懂懂在用的std命名空间,原谅我读书少才知道)

STL构成

  • container(容器)
  • algorithm(算法)
  • iterator(迭代器)

其中三者关系如图所示:
STL学习之概要

算法

模板函数:如容器元素的比较、交换、查找、遍历、复制、修改、删除、排序和合并等操作

所有的算法都包括在相应的头文件中:

<algorithm>算法
<numeric>数值算法
<functional>对象和相应的函数

迭代器

类似于c/c++中的指针,算法通过迭代器来定位和操作容器中的元素

迭代器常用的有四种:

  1. iterator:指向容器中存放元素的迭代器,用来正向遍历
  2. const_iterator:与iterator相似,但是只能用来读取,不能用作操作
  3. reverse_iterator:指向容器中存放元素的反向迭代器,用来反向遍历
  4. const_reverse_iterator:与reverse_iterator相似,但是只能用来读取,不能操作

迭代器常用运算:

++:正向移动迭代器
- -:反向移动迭代器
*:返回迭代器目前所指向的元素值

容器

就是数据结构,例如链表、栈和队列等

对于他来说这些容器都拥有自己的头文件,例如向量容器vector等

一下是STL常用容器图:
STL学习之概要