栈
0、题目
1、力扣42题:接雨水
按行计算:单调栈,找到凹点;
按列计算:动态规划,找到左右最高点
1、创建stack
stack<数据类型,容器类型> st;
数据类型:一般是int等基本类型,也可以是自定义类型;
容器类型:可省略,默认是deque类型;
/*创建堆栈时,不能在初始化列表中用对象来初始化,但是可以用另一个容器来初始化,
只要堆栈的底层容器类型和这个容器的类型相同*/
//stack<int> s1 = {1,2,3,4}; error
//stack<int> s1(10); error
//1、创建一个空的栈s1
stack<int> s1;
stack<int,list<int>> s1;
//2、用vector容器初始化stack
vector<int> v1={1,2,3,4};
stack<int,vector<int>> s2(v1); //1,2,3,4依次入栈
//3、用deque容器初始化stack
//用deque为stack初始化时deque可省 因为stack是基于deque实现的, 默认以deque方式构造
deque<int> d1 = {1,2,3,4,5};
stack<int,deque<int>> s3(d1);
stack<int> s4(d1);
//4、用list容器初始化stack
list<int> l1 = {1,2,3,4,5};
stack<int,list<int>> s5(l1);
##2、基本操作
st.top();
st.push();
st.pop(); //无返回值
st.size();
st.empty();
st.swap(st1);