stack 栈
先进后出
常用函数
常和string连用
#include <stack> //头文件
stack<int>s //声明
s.push() //压入栈顶元素
s.pop() //弹出栈顶元素
s.top() //返回栈顶元素
s.size() //返回元素个数
s.empty() //返回是否为空
s.swap(s1)或swap(s, s1) //交换两个栈s和s1的全部元素
vector 向量
与stack基本相同
#include <vector> //头文件
vector<int> v //定义
可以通过=在两个vector之间赋值
vec.insert(vec.begin()+i,a); //在第i个元素后面插入a;
vec.erase(vec.begin()+2); //删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j); //删除区间[i,j-1];区间从0开始
vec.size(); //向量大小;
vec.clear() //清空之后,vec.size()为0
vec.empty(); //判断是否为空
vec.assign(b.begin(), b.begin()+3); //b为向量,将b的0~2个元素构成的向量赋给a
vec.assign(4,2); //是vec只含4个元素,且每个元素为2
vec.back(); //返回vec的最后一个元素
vec.front(); //返回vec的第一个元素
vec.capacity(); //返回vec在内存中总共可以容纳的元素个数
vec.pop_back(); //删除a向量的最后一个元素
vec.erase(vec.begin()+1,vec.begin()+3); //删除vec中第1个(从第0个算起)到第2个元素,也就是说删除的元素从vec.begin()+1算起(包括它)一直到vec.begin()+3(不包括它)
vec.push_back(5); //在vec的最后一个向量后插入一个元素,其值为5
vec.insert(vec.begin()+1,5); //在vec的第1个元素的位置插入数值5,
vec.insert(vec.begin()+1,3,5); //在vec的第1个元素的位置插入3个数,其值都为5
vec.insert(vec.begin()+1,b+3,b+6); //b为数组,在a的第1个元素的位置插入b的第3个元素到第5个元素(不包括b+6),如b为1,2,3,4,5,9,8 ,插入元素后1,4,5,9,2,3,4,5,9,8
向量可以进行== != >= <= > <
迭代器
vector<int>::iterator i; //定义正向迭代器
for (i = v.begin(); i != v.end(); ++i)//注意是不等于
cout << *i << " "; //*i 就是迭代器i指向的元素
stack、queue 和 priority_queue 没有迭代器。