行业知识
【C++】手撕 栈 & 队列(适配器)
2026-11-10 09:25:26
来源:互联网转载
目录
一,stack
1,stack的介绍
2,stack 框架
3,push(const T& x)
4,pop()
5,top()
6,size()
7,empty()
8,stack 测试
9,源代码
二,queue
1,queue的介绍
2,queue 框架
3,push(const T& x)
4,pop()
5,front()
6,back()
7,size()
8,empty()
9,queue 测试
10,源代码
三,总结
一,stack
1,stack的介绍
1,stack 是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
2,stack 是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。
3,stack 的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:
empty:判空操作
back:获取尾部元素操作
push_back:尾部插入元素操作
pop_back:尾部删除元素操作
4,标准容器 vector、deque、list 均符合这些需求,默认情况下,如果没有为 stack 指定特定的底层容器, 默认情况下使用 deque。
2,stack 框架
这里我们要用【适配器】
templateclass stack{public:private:Container _con;}; 适配器 Container 可以转换成特定的容器;
3,push(const T& x)
尾插
void push(const T& x){_con.push_back(x);} 4,pop()
尾删
void pop(){_con.pop_back();} 5,top()
取栈顶元素
const T& top(){return _con.back();} 6,size()
堆栈有效数据个数
size_t size(){return _con.size();} 7,empty()
判空
bool empty(){return _con.empty();} 8,stack 测试
void test1(){wxd::stack sk1;sk1.push(1);sk1.push(2);sk1.push(3);sk1.push(4);sk1.pop();cout
上一篇:怎么测试服务器回程速度?
下一篇:服务器怎么查外网地址?