栈(stack)
栈是一个先进后出的容器,需要使用#include <stack>
头文件
stack <int> a ; //定义一个存储int 类型的栈
a.push_back(1) ; //将 1 压入栈中
a.pop() ; // 将栈的最后一个元素弹出(删除)
a.empty() ; //判断栈是否为空,如果是空的返回1 否则返回0
a.size() ; //返回栈的大小
a.top() ; //返回栈顶元素(就是栈的最后一个元素)
a.front() ; // 返回栈的第一个元素
a[i] //返回栈中第i个元素
- 注意:栈中没有clear()函数,如果需要清空栈,只有循环调用pop()函数
队列(queue)
队列是的特点是先进先出需要使用头文件#include <queue>
queue <int> a ; //定义一个存储int 类型的队列
a.push(1) ; //将 1 压入队列中
a.pop() ; // 将队列的第一个元素弹出
a.empty() ; //判断栈是否为空,如果是空的返回1 否则返回0
a.top() ; //返回队列的第一个元素
a.clear() ; //将队列清空
优先队列(priority_queue)
既然也是队列,那么使用方式与队列基本一致,但是在读入的过程中,自动将队列中的元素进行了排序
priority_queue <int,vector<int>,greater<int> > a;//升序队列
priority_queue <int,vector<int>,less<int> >a;//降序队列
双向队列(deque)
同理,基本和队列是同一个方法
deque <int> a ;
a.push_front();//队头插入元素
a.push_back();//队尾插入元素
a.pop_front();//删除对头元素
a.pop_back();//删除队尾元素
STL及其用法
序列式容器:vector
包含于#include <vector>
头文件的下方
vector<int> a,b;
a.push_back(i) ; //尾部加入新的元素
a.pop_back() ;//删除最后一个元素
a.size() ; //返回容器的大小
a.swap(b) ; //a与B进行交换
a.clear() ; //清空
a.begin() ;//指向容器的起点
a.end() ; //指向容器的结束点
set
set就是集合,需要用到#include <set>
set 中同一元素不会出现第二次
set <int> a ;
a.insert(1) ; //添加一个元素
a.find(3) ; //查找元素3
a.begin() //返回set容器的第一个元素
a.end() //返回set容器的最后一个元素
a.clear() //删除set容器中的所有的元素
a.empty() //判断set容器是否为空
a.size() //返回当前set容器中的元素个数
a.rbegin //返回的值和end()相同
a.rend() //返回的值和rbegin()相同
lower_bound(2)//返回第一个大于等于2的地址
upper_bound(2)//返回最后一个大于等于2的地址