STL开篇
STL开篇
STL 实际上,是一套封装好的C++模板类。提供通用的模板类和函数,用来高性能的实现常用的算法和数据结构,比如:向量vector、链表、队列、栈。
STL 做到了数据结构和算法的分离,比如:vector的底层是顺序表(数组),list的底层为双向链表,deque的底层是循环队列,set的底层是红黑树,hash_set的底层是哈希表。
C++ STL 的核心包括三个组件:
- 容器(Containers):容器用来管理某同一类对象的集合。C++的各种容器类型,比如:deque、list、vector、map等。
- 算法(Algorithms):算法作用于容器。提供执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作;
- 迭代器(iterators):迭代器用于遍历对象集合的元素,这些集合可能是容器,也可能是容器的子集。
一个简单的vector示例
vecotr和数组非常相似,唯一不同的是,vector在需要扩展大小的时候,会自动处理它的存储需求!
1 |
|
vector的常用函数:
- push_back(): 向vector的末尾插入值,如有必要,会扩展向量的大小;
- size(): 显示向量的大小;
- begin(): 返回一个指向向量开头的迭代器;
- end(): 返回一个指向向量结尾的迭代器
- vector
::iterator v = vec.begin();