Ⅰ. stack的用法
1. stack对象的创建
void test_stack1()
{
stack<int> st;
}
2. stack的销毁
3. stack的增(入栈)
void test_stack2()
{
stack<int> st;
st.push(1);
st.push(2);
}
4. stack的删(出栈)
void test_stack3()
{
stack<int> st;
int val = st.top();
cout<< val <<endl;
st.pop();
}
5. stack的查(无)
6. stack的改(无)
Ⅱ. 适配器模式
因为 stack 容器 的 接口 是 vector 或者 list 的接口的子集,所以就可以任选一种将其作为模板传入stack类中,
将其修改封装,暴露出来的接口仅仅是push(),pop(),top()......
Ⅲ. stack的底层原理
#include<vector>
using namespace std;
template<class T,class container = vector<T>>
class stack
{
public:
void push(const T& x)
{
_con.push_back(x);
}
void pop()
{
_con.pop_back();
}
const T& top()
{
return _con.back();
}
bool empty()
{
return _con.empty();
}
size_t size()
{
return _con.size();
}
private:
container _con;
};