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

南宁市保障住房建设管理服务中心网站广州:推动优化防控措施落地

南宁市保障住房建设管理服务中心网站,广州:推动优化防控措施落地,工程建设程序,网站建设策划书模板下载前言 对于这两个容器适配器的模拟实现非常简单,因为stack和queue只是对其他容器的接口进行了包装,在STL中,若我们不指明用哪种容器作为底层实现,栈和队列都默认是又deque作为底层实现的。 也就是说,stack和queue不管是…

前言

对于这两个容器适配器的模拟实现非常简单,因为stack和queue只是对其他容器的接口进行了包装,在STL中,若我们不指明用哪种容器作为底层实现,栈和队列都默认是又deque作为底层实现的。

也就是说,stack和queue不管是用哪种容器实现出来的,实际上定义出来的都是对容器进行了封装。

stack的模拟实现

所以我们知道了容器适配器实际上是对其他容器的封装之后,我们实现的时候就只需要调用底层容器的各个成员函数实现stack的接口就行:

成员函数及作用模拟实现方法
push(元素入栈)调用指定容器的push_back
pop(元素出栈)

调用指定容器的pop_back

top(获取栈顶元素)调用指定容器的back
size(获取栈中有效元素个数)调用指定容器的size
empty(判断栈是否为空)调用指定容器的empty
swap(交换两个栈中的数据)调用指定容器的swap

模拟实现的代码如下:

#pragma once
#include<queue>
#include<iostream>
using namespace std;
namespace CYF
{template<class T,class Container=std::deque<T>>class stack{public:void push(const T& val){_con.push_back(val);}void pop(){_con.pop_back();}T& top(){return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}void swap(stack<T,Container>& st){_con.swap(st._con);}private:Container _con;};
}

queue模拟实现

同样的我们也通过调用指定容器的成员函数来模拟实现queue。

成员函数及作用模拟实现方法
push(元素队尾入队)调用指定容器的push_back
pop(元素队头出队)调用指定容器的pop_front
front(获取队头元素)调用指定容器的front
back(获取队尾元素)调用指定容器的back
size(获取队列中有效数据个数)调用指定容器的size
empty(判断队列是否为空)调用指定容器的empty
swap(交换两个队列中的数据)调用指定容器的swap

模拟实现的代码如下:

#pragma once
#include<iostream>
#include<list>
#include<queue>
using namespace std;namespace CYF
{template<class T,class Container=deque<T>>class queue {public:void push(const T& val){_con.push_back(val);}void pop(){_con.pop_front();}T& front(){return _con.front();}T& back(){return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}void swap(queue<T,Container>& q){_con.swap(q._con);}private:Container _con;};
}

下面这是test.cpp中的测试代码:

#include"myStack.h"
#include"myQueue.h"
void test1()
{CYF::stack<int, vector<int>> st;st.push(1);st.push(2);st.push(3);st.push(4);while (!st.empty()){cout << st.top() << " ";st.pop();}cout << endl;
}void test2()
{CYF::queue<int, list<int>> q;q.push(1);q.push(2);q.push(3);q.push(4);while (!q.empty()){cout << q.front() << " ";q.pop();}cout << endl;
}int main()
{//test1();test2();return 0;
}

以上就是本篇的全部内容,谢谢大家!

http://www.dtcms.com/wzjs/95746.html

相关文章:

  • 网站为什么不收录免费域名注册二级域名
  • 家里电脑如何做网站网络推广员工资多少钱
  • 哪个网站学做凉皮洛阳搜索引擎优化
  • 城乡建设查询网站关键词排名优化怎么做
  • 沈阳百度推广排名上海网站排名seo公司哪家好
  • 网站系统设计方案网络营销的发展现状如何
  • oa网站建设seo教学培训
  • 北京王府井图片东营seo网站推广
  • 网站建设的相关书籍东莞建设企业网站
  • 建筑网站排行榜优化seo排名
  • 做电源的网站网络销售怎么做才能有业务
  • 青岛模板网站建设价格网络营销策划的具体流程是
  • 手机网站模板欣赏百度推广关键词
  • 萍乡网站建设成功的营销案例及分析
  • dw做不了动态网站asp乔拓云智能建站官网
  • 个人做网站如何推广互联网广告推广是什么
  • 品牌网站建设的作用google推广技巧
  • 通过页面wordpress文件位置五年级上册语文优化设计答案
  • 成都优化网站关键词百度新闻官网
  • 在家里组一个服务器做网站东莞头条最新新闻
  • 如何网站建设策划方案站长统计官方网站
  • 台州椒江网站建设公司针对百度关键词策划和seo的优化
  • 孟村县网站建设怎样设计一个网页
  • 临沂医院手机网站建设晋城今日头条新闻
  • adsl服务器建网站安卓优化大师旧版本
  • 一般在什么网站上做电子请帖seo需要付费吗
  • 郑州浩方网站建设智联招聘谷歌seo推广招聘
  • 巩义网站建设模板百度广告怎么做
  • 电商app制作开发抖音seo优化怎么做
  • 用asp制作动态网站做seo网页价格