0%

C++|STL库总结

一直在用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:


  1. set基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。
  2. unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,利用hash函数对key进行映射到不同区域进行保存。
Would you like to buy me a cup of coffee☕️~