欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > C++模拟实现stack

C++模拟实现stack

2025/2/22 2:08:54 来源:https://blog.csdn.net/m0_73372323/article/details/144654652  浏览:    关键词:C++模拟实现stack

C++模拟实现stack

  • 1.stack的基本概念
  • 2.stack基本结构
  • 3.size()成员函数
  • 4.empty()成员函数
  • 5.push()成员函数
  • 6.pop()成员函数
  • 7.top()成员函数
  • 8.完整代码

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【C++的学习】
📝📝本篇内容:stack的基本概念;stack的基本结构;size()成员函数;empty()成员函数;push()成员函数;pop()成员函数;top()成员函数;完整代码
⬆⬆⬆⬆上一篇:一文速通stack和queue的理解与使用
💖💖作者简介:轩情吖,请多多指教(> •̀֊•́ ) ̖́-

1.stack的基本概念

stack是一个容器适配器,它底层是修改其他容器的接口,形成另一种风貌。stack就是我们常说的数据结构栈,它具有先进后出的特性,我们只能对它的一端进行操作,并且stack不允许遍历

2.stack基本结构

#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是vector或list,可以更好的理解,deque是库中默认的template<class T, class Container = deque<T>>class stack{public:private://修改其他容器的接口,形成另一种风貌:容器适配器Container _con;};
}

可以先去看一下vector和list的模拟实现,这样就可以很好的理解后面的内容了

3.size()成员函数

		//有效元素个数size_t size(){return _con.size();}

直接使用底层容器的接口

4.empty()成员函数

//判空bool empty(){return _con.empty();}

5.push()成员函数

		//压栈void push(const T& val){_con.push_back(val);}

6.pop()成员函数

		//出栈void pop(){_con.pop_back();}

7.top()成员函数

		//获取栈顶元素T& top(){return _con.back();}//针对const对象const T& top()const{return _con.back();}

8.完整代码

#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是vector或list,可以更好的理解,deque是库中默认的template<class T, class Container = deque<T>>class stack{public://有效元素个数size_t size(){return _con.size();}//判空bool empty(){return _con.empty();}//压栈void push(const T& val){_con.push_back(val);}//出栈void pop(){_con.pop_back();}//获取栈顶元素T& top(){return _con.back();}//针对const对象const T& top()const{return _con.back();}private://修改其他容器的接口,形成另一种风貌:容器适配器Container _con;};
}

其实stack的模拟实现很简单,只需要调用别的容器的接口即可,压根没有难度~

🌸🌸C++模拟实现stack的知识大概就讲到这里啦,博主后续会继续更新更多C++的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词