一、stack的使用
![在这里插入图片描述](https://img-blog.csdnimg.cn/9ad50895d7f64a849bdc16f62b5600b0.png)
二、stack的模拟实现
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include<vector>
#include<list>
namespace sk
{
template <class T, class Container = deque<T>>
class stack
{
public:
bool empty()const
{
return _con.empty();
}
size_t size()const
{
return _con.size();
}
void push(const T& val)
{
_con.push_back(val);
}
void pop()
{
_con.pop_back();
}
const T& top()const
{
return _con.back();
}
private:
Container _con;
};
void stack_test()
{
stack<int> st;
st.push(1);
st.push(2);
st.push(3);
st.push(4);
while (!st.empty())
{
cout << st.top() << " ";
st.pop();
}
cout << endl;
}
}
三、queue的使用
![在这里插入图片描述](https://img-blog.csdnimg.cn/090b068027044ebb8ad65189857ebe35.png)
四、queue的模拟实现
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include<vector>
#include<list>
namespace sk
{
template <class T, class Container = deque<T>>
class queue
{
public:
bool empty()const
{
return _con.empty();
}
size_t size()const
{
return _con.size();
}
void push(const T& val)
{
_con.push_back(val);
}
void pop()
{
_con.pop_front();
}
const T& front()const
{
return _con.front();
}
const T& back()const
{
return _con.back();
}
private:
Container _con;
};