文章目录
stack && quene
概述
栈和队列,被称之为duque的适配器,其底层是以deque为底部架构的。通过deuqe执行具体操作:
源码
template<class T, class Sequence=deque <T>>
class stack { //_STL_NULL_TMPL_ARGS展开为<>
friend bool operator==
_STL_NULL_TMPL_ARGS(const stack &, const stack &);
friend bool operator<
_STL_NULL_TMPL_ARGS(coonst
stack&,const stack&);
public:
typedef typename Sequence::value_type value_type;
typedef typename Sequence::size_type size_type;
typedef typename Sequence::reference reference;
typedef typename Sequence::const_reference const_refernece;
protected:
Sequence c;
public:
bool empty() const { return c.empty(); }
size_type size() const { return c.size(); }
reference top() {
return c.back();
}
const_rference top() const { return c.back(); }
void push(const value_type &x) { c.push_back(x); }
void pop_back() { c.pop_back(); }
};
template<class T, class Sequence>
bool operator==(const stack<T, Sequence> &x, const stack<T, Sequence> &y) {
return x.c == y.c;
}
template<class T, class Sequence>
bool operator<(const stack<T, Sequence> &x, const stack<T, Sequence> &y) {
return x.c < y.c;
}