AKSZ-STL容器
子串(连续的)和子序列(不一定连续)
表达式(前缀,中缀,后缀)
> 1.前缀表达式->符号在数字前 (+1,-1)
> 2.中缀表达式->符号在数字中间 (1+1, 1-1)
> 3.后缀表达式->符号在数字后 (1-, 2-)
> ###中缀转后(前)缀:
> 82+3*(20-8)/2
> 1.根据运算优先级打括号
> (82+((3*(20-8))/2))
> 2.将括号内运算符挪到对应括号后(前)
> (82((3(20 8)-)*2)/)+
> 3.去掉所有括号
> 82 3 20 8 - * 2 / +
> ##vector(动态数组)
> //定义
> vector<int> v;
> vector<int> v(n,value)//定义n个vector,初始化为value
迭代器AUTO(类似指针)
> 迭代器常用操作
> 1.begin() : 指向容器第一个元素的迭代器
> 2.end(): 指向容器尾部的下一个位置的迭代器
> 3.++ : 将迭代器指向下一个位置
> 4.*: 获取迭代器指向元素
集合SET(唯一,升序)
set常用函数
> s.size()
> s.insert(x)//插入x
> s.erase(x)//删除等于x的所有元素
> s.find(x)//查找x,存在返回该元素的迭代器,否则返回end()
> s.empty()//判断容器是否为空
> s.count(x)//判断是否存在x,1在0不在
> s.lower_bound(s.begin(),s.end(),x)//返回第一个大于x的元素的下标
MAP
> 常用方法
> 1.mp.size()//输出有多少元素
> 2.mp.erase(x)//删除键为x的所有元素
> 3.mp.find(x)//查找集合中等于x的元素,存在x返回该元素迭代器,否则返回end()
> 4.mp.empty()//常看当前容器是个否为空
MULTISET(可重集)
UNORDERED_MAP(无序集)
双端队列(DEQUE)
> 如何定义:deque<类型>q;
> 取对头:q.front()
> 取对位:q.back()
> 加对头:q.push_front()
> 加对尾:q.push_back()
> 删对头:q.pop_front()
> 删对位:q.pop_back()