当前位置: 首页 > news >正文

中国住房建设部网站首页网络认证登录页面

中国住房建设部网站首页,网络认证登录页面,温州网站制作,文章类型的网站模版[STL]stack和queue模拟实现 文章目录 [STL]stack和queue模拟实现stack模拟实现queue模拟实现 stack模拟实现 stack是一种容器适配器,标准容器vector、deque、list都可以作为实现stack的底层数据结构,因为它们都具备以下功能: empty&#xf…

[STL]stack和queue模拟实现

文章目录

  • [STL]stack和queue模拟实现
    • stack模拟实现
    • queue模拟实现

stack模拟实现

stack是一种容器适配器,标准容器vector、deque、list都可以作为实现stack的底层数据结构,因为它们都具备以下功能:

  • empty:判空操作
  • back:获取尾部元素操作
  • push_back:尾部插入元素操作
  • pop_back:尾部删除元素操作

stack会将这些已有的容器进行转化,转换成能够以栈的方式使用的形式,stack的整体结构如下:

template<class T, class Container = vector<T>>class stack{public:void push(const T& x) {}; //将数据压入栈中void pop() {}; //将栈顶数据弹出const T& top() {};	//获取栈顶数据size_t size() {};	//获取栈的数据个数bool empty() {};	//判断栈是否为空private:Container _con;};

说明: 由于stack可以由不同的容器实现,模板中的Container用于传入不同种类的容器。

push函数

push函数的功能是将数据压入栈中,只需要使用各个容器都可以使用的尾插函数来模拟实现即可。

void push(const T& x)
{_con.push_back(x);
}

pop函数

pop函数的功能是将栈顶的数据删除,只需要使用各个容器都可以使用的尾删函数来模拟实现即可。

void pop()
{_con.pop_back();
}

top函数

top函数的功能是获取栈顶的数据,只需要使用各个容器都可以使用的获取尾部数据的函数来模拟实现即可,然后返回数据的const引用。

const T& top()
{return _con.back();
}

size函数

size函数的功能是获取栈内数据个数,只需要使用各个容器都可以使用的获取数据个数函数来模拟实现即可。

size_t size()
{return _con.size();
}

说明: 返回值使用的size_t是无符号整数,是为了兼容不同容器可能会有的有符号整数和无符号整数的区别。

empty函数

empty函数的功能是判断栈是否为空,只需要使用各个容器都可以使用的判断是否为空的函数来模拟实现即可。

bool empty()
{return _con.empty();
}

stack模拟实现的完整代码

stack模拟实现的完整代码如下:

template<class T, class Container = vector<T>>class stack{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_back();}const T& top(){return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;};

queue模拟实现

queue是一种容器适配器,标准容器类deque和list都可以作为实现queue的底层数据结构,因为它们都具备以下功能:

  • empty:检测队列是否为空
  • size:返回队列中有效元素的个数
  • front:返回队头元素的引用
  • back:返回队尾元素的引用
  • push_back:在队列尾部入队列
  • pop_front:在队列头部出队列

queue会将这些已有的容器进行转化,转换成能够以队列的方式使用的形式,queue的整体结构如下:

template<class T, class Container=list<T>>class queue{public:void push(const T& x); //将数据入队void pop(); //将栈顶数据出队const T& front();	//获取队头数据const T& back();	//获取队尾数据size_t size();	//获取栈的数据个数bool empty();	//判断栈是否为空private:Container _con;};

说明: 由于queue可以由不同的容器实现,模板中的Container用于传入不同种类的容器。

push函数

push函数的功能是尾插数据入队,只需要使用各个容器都可以使用的尾插函数来模拟实现即可。

void push(const T& x)
{_con.push_back(x);
}

pop函数

pop函数的功能是将队头的数据删除,只需要使用各个容器都可以使用的头删函数来模拟实现即可。

void pop()
{_con.pop_front();
}

front函数

front函数的功能是获取队头的数据,只需要使用各个容器都可以使用的获取头部数据的函数来模拟实现即可,然后返回数据的const引用。

const T& top()
{return _con.front();
}

back函数

back函数的功能是获取队尾的数据,只需要使用各个容器都可以使用的获取尾部数据的函数来模拟实现即可,然后返回数据的const引用。

const T& top()
{return _con.back();
}

size函数

size函数的功能是获取队列内数据个数,只需要使用各个容器都可以使用的获取数据个数函数来模拟实现即可。

size_t size()
{return _con.size();
}

说明: 返回值使用的size_t是无符号整数,是为了兼容不同容器可能会有的有符号整数和无符号整数的区别。

empty函数

empty函数的功能是判断队列是否为空,只需要使用各个容器都可以使用的判断是否为空的函数来模拟实现即可。

bool empty()
{return _con.empty();
}

queue模拟实现的完整代码

queue模拟实现的完整代码如下:

template<class T, class Container=list<T>>class queue{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_front();}const T& front(){return _con.front();}const T& back(){return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;};
http://www.yayakq.cn/news/91125/

相关文章:

  • 随便建设网站犯法吗新手如何制作一个网页
  • 网站开发怎样将信息栏到最底部做网站需要向客户了解什么
  • 临漳 网站建设unity网站后台怎么做
  • 2018年网站建设发言织梦网站怎么做投票
  • 做电影网站侵权吗蓝色商务网站模板
  • 自然志wordpress下载网站优化排名优化
  • 黄冈建设局网站wordpress的网站好用吗
  • 怎么做网站关键词库排名建设厅和应急管理厅焊工证区别
  • 图片网站建设方案58同城类似的网站怎么做
  • 丰宁县建设局网站肇庆网页关键词优化
  • 怎么在百度上做网站推广锦州做网站多少钱
  • 整站优化报价哪个全球购网站做的好处
  • 如果网站被攻击了怎样拥有自己的网站
  • dedecms 模版网站阜康市建设银行网站
  • 什么 电子商务网站建设与管个人视频网站制作
  • 网课网站贵阳市城乡建设厅网站
  • 服务器上面建设网站高新网站建设多少钱
  • 网站界面布局建设企业网站需要多少钱
  • 网站不见了汕头网站快速排名提升
  • 如何把网站主关键词做到百度首页从信息化建设办公室网站
  • 一叶子电子商务网站建设策划书网络营销战略规划
  • 网站背景色代码wordpress浮动电话
  • 传统网站和手机网站的区别站长网站优点
  • 西部网站域名出售二类电商平台
  • 温州企业网站开发wap端
  • 做免费外贸网站石家庄优化seo
  • 长沙网站建设接单适合做外贸的公司名
  • 网站开发与应用案例教程鞍山做网站优化
  • 视频类网站开发深圳装饰企业前50强
  • 惠州网站建设英语西渡网站建设