STL小结
STL:
一、vector
1、什么是vector
vector是c++的一种容器。函数简单来说vector就是一个不定长度的数组。它把一些常用操作“封装”在vector类型内部。
2、申明方式
vector<类型(如int/double)>名称
vector<int>a;≈int a[];
3、常用操作
a.clear()//移出容器中所有数据
a.empty()//判断容器是否为空
a.erase(x)//删除x位置的数据
a.erase(x,y)//删除[x,y)区间的数据
a.front()//传回第一个数据
a.insert(x,y)//在x位置插入一个y
a.size()//读取vector类型a的长度(实际数据个数)
a.resize(num)//改变大小
a.push_back()//向尾部添加元素
a.pop_back()//删除最后一个元素
a.end()//返回指向容器最后一元素的迭代器
a.begin()//返回指针容器第一个元素的迭代器
4、遍历vector
(1)直接访问
利用下标访问
(2)迭代器访问
1)迭代器定义
vector<int>::iterator it(迭代器名称);
5、定义二位vector
(1)法一
int N=5,M=6;
vector<vector<int>>a(N);//定义为5行
for(int i=0;i<=a.size();i++){
a[i].resize(M);
}
(2)法二
vector<vector<int>> a(N,vector<int>(M));
二、Stack(栈)
什么是栈:
stack基本操作
stack定义
stack<类型>对象;
如:stack<int>a;
操作
s.push(x)//将x元素入栈
s.pop()//弹出栈的以第一个元素,并不返回元素的值
s.top()//获取栈第一个元素
s.size()//栈中元素,返回值int
s.empty()//判断栈是否为空,返回值bool
三、queue
什么是queue(队列)
queue基本操作
定义
queue<类型>对象;
如:queue<int>a;
操作
a.push(x)//将x元素放到队列末端
a.pop()//弹出队列的第一个元素,并不返回元素的值
a.front()//获取队列的一个元素
a.back()//获取队列最后一个元素
a.size()//获取元素个数
a.empty()//队列是否为空
四、deque(双端队列)(depueue)
什么是双端队列
基本操作
太懒同上面的列表
只不过前后都可以进出~~
对了,定义也是一样的