说明
栈的简单实现很简单,但是有一个强制要求,传过来的类模版中,必须包含尾插头删等操作
队列同理
他们两个叫空间适配器,不同于其他stl的类
stack与 queue
自身的拷贝构造是调用传过来的类,析构同理,什么都是用别人的,自己只是一个封装效果一样,封装别人
类模版:
这里的conatiner是要传过来的类
template<class T,class Container= deque <T>>
class stack
{private:
Container _con;};
template<class T, class Container = deque <T>>
class queue
{private:
Container _con;};
push
使用:
int main()
{
stack<int> d;
queue<int> s;
d.push(1);
d.push(2);
d.push(3);
d.push(4);
d.push(5);
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
while (!d.empty())
{
cout << d.top()<<" ";
d.pop();
}
cout << endl;
while (!s.empty())
{
cout << s.front() << " ";
s.pop();
}
return 0;
}
简单实现:
相当于富二代 用别人的 自己没有
void push(const T& x)
{
_con.push_back(x);
}
pop()删除
实现:
void pop()
{
_con.pop();
}
top()查头
const T& top()
{
return _con.back();
}
queue的back()查尾
const T& back()
{
return _con.back();
}
size()长度
size_t size()
{
return _con.size();
}
empty()判空
bool empty()
{
_con.empty();
}