前言
最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂。有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了…不会告诉你距离上次使用可能已经有半年以上了。
STL是什么
STL为C++的标准模版库,又称为C++泛型库,在std命名空间中定义了常用的数据结构和算法,使用起来十分方便。
STL提供三种类型的组件:
- 容器。主要有两类:顺序容器和关联容器。前者主要包括:vector,list,deque和string等,为一些列元素的有序集合。后者主要有:set,multiset,map和multimap,包含查找元素的键值
- 迭代器的作用是遍历容器
- 算法库。主要包括四类算法:排序算法,不可变序算法,变序性算法和数值算法
容器常用操作
这一节主要说一下各种容器的常用操作,直接看代码实例即可。
vector
向量容器可以像数组一样对元素进行随机访问,还可以在尾部插入元素,完全可以替代数组。具有内存自动管理的功能,对元素的插入和删除可以动态调整所占用的内存空间。
#include#include using namespace std;// sort指定的排序算法 bool Comp(const int &a, const int &b){ if(a!=b) return a>b; else return a>b; } int main(void){ // 初始化有三种方式 // 元素下标均从0开始 vector v1; //不指定元素个数 vector v2(10); // 10个元素,每个初值窦唯0.0 vector v3(10, 1); // 10个元素,每个值都为1 // 尾部追加新元素 v1.push_back(1); // 有2种方式访问元素 // 使用下标方式访问元素 cout< <