容器实现
这里栈的实现,实际上和上篇博客里的list中的迭代器一样。
都是用了模板的功能
能实现list栈和vector栈的任意切换
这里就直接上代码了
#include<list>
#include<vector>
#include<iostream>
namespace stack
{
//两个声明类型,第一个是容器类型
template<class T , class container=std::list<T> >
class stack
{
public:
//这里就挑了vector和list都有的调用方法
//来实现stack的接口了
void push(const T& val)
{
_con.push_back(val);
}
void pop()
{
_con.pop_back();
}
T& top()
{
return _con.back();
}
size_t size()
{
return _con.size();
}
bool empty()
{
return _con.empty();
}
private:
container _con;
};
};
实现就是这么简单
测试
这里是因为我们给了缺省值,所以直接自动生成list栈了。