一直在用C++刷题,STL库用的很频繁,但是总是记不全,所以写一篇blog来总结一下。
vector
Vector实际上就是长度可变的数组。
vector<int> vec
:定义了vector类型的变量vec,其中的元素为int类型。实际上相当于定义了长度可变的一位数组。
vector<vector<int> > vec
:定义了vector类型的变量vec,其中的元素为vector类型。实际上相当于定义了长度可变的二维数组。其中元素的长度也是可变的。
常用函数
首先定义一个vector对象:vector<int> vec
。 常用函数如下:
vec.push_back(a) :将元素加入vec中。
vec.pop_back()
vec.insert:
set
基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。unordered_set
基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,利用hash
函数对key
进行映射到不同区域进行保存。