文章目录
- 说明
- stack与 queue
- push
- pop()删除
- top()查头
- queue的back()查尾
- size()长度
- empty()判空
说明
栈的简单实现很简单,但是有一个强制要求,传过来的类模版中,必须包含尾插头删等操作
队列同理
他们两个叫空间适配器,不同于其他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();
}