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

免费的个人网站空间百度seo查询收录查询

免费的个人网站空间,百度seo查询收录查询,有没有专门做游戏辅助的网站,服务器可以吧网站做跳转吗文章目录空间适配器stackstack的定义方式stack的使用stack的模拟实现queuequeue的定义方式queue的使用queue的模拟实现空间适配器 适配器是一种设计模式(设计模式是一套被反复使用的,多数人知晓的,经过分类编目的,代码设计经验的…

文章目录

  • 空间适配器
  • stack
    • stack的定义方式
    • stack的使用
    • stack的模拟实现
  • queue
    • queue的定义方式
    • queue的使用
    • queue的模拟实现

空间适配器

适配器是一种设计模式(设计模式是一套被反复使用的,多数人知晓的,经过分类编目的,代码设计经验的总结),该种模式是将一个类的接口转换客户希望的另外一个接口。

虽然stack和queue中也可以存放元素,但在STL中却并没有划分到容器的行列,而是将其称为容器适配器,这是因为stack和队列只是对其他容器的接口进行了包装,当我们没有显示传时,STL中stack和queue默认使用deque。
例如:
如果我们定义一个stack,并指定使用vector容器,则定义出来的实际出来的stack就可以
复用vector的接口来实现栈的各个函数接口。
在这里插入图片描述
在这里插入图片描述

stack

stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其只能从容器的一段继续元素的增删操作。

stack的定义方式

方式一:使用STL中默认的适配器定义栈。(默认为deque)

	stack<int> s1;

方式二:使用特定的适配器定义栈

    stack<int, vector<int>> st2;stack<char, vector<char>> st3;

stack的使用

在这里插入图片描述

int main()
{stack<int, vector<int>> st1;st1.push(1);st1.push(2);st1.push(3);while (!st1.empty()){cout << st1.top() << endl;st1.pop();}//3 2 1cout << st1.size() << endl;   //0return 0;
}

stack的模拟实现

1:为了体现vector适配器特性,在初始栈的基础上增加一个模板参数Container,并用deque默认容器作缺省值。
2: 根据我们所传的容器类型,就变成指定容器类型的适配器,进而复用指定容器的接口实现stack成员函数,进而实现stack的各种功能。

namespace yzh
{template <class T,class Container = deque<T>>class stack{public://构造,拷贝构造,赋值都不需要。//编译器会调用自定义类型参数。void push(const T& x)    //尾插{_con.push_back(x);            //复用vector的push_back();}void pop()              //尾删{_con.pop_back();             //复用vector的pop_back();}const  T& top() const            //栈顶不可以被修改。return _con.back();         //复用vector的back();}size_t size() const {return _con.size();        //复用vector的size();}bool empty() const{ return _con.empty();        //复用vector的empty;}private:Container _con;};
}

queue

queque是一种容器适配器,专门用具有先进先出的操作的上下文环境中,其只能从容器的一端插入元素,另一端提取元素。

queue的定义方式

定义方式一:使用STL中默认的适配器定义队列。(默认为deque)

queue<int> q1;

定义方式二:使用特定的适配器定义队列。

	queue<int, vector<int>> q2;queue<char, list<char>> q3;

queue的使用

在这里插入图片描述
因为queue的接口存在头删和尾插,如果使用vector封装效率太低,所以一般借助lsit来封装。

int main()
{queue<int, list<int>> q1;q1.push(1);q1.push(2);q1.push(3);cout<<q1.back()<<endl;while (!q1.empty()){cout << q1.front() << endl;q1.pop();}//3 2 1cout << q1.size() << endl;   //0return 0;
}

queue的模拟实现

1: queue不能使用vector容器封装,头插尾删效率太低。
2:写两种front和back成员函数是为支持const队列调用const front和const back ,它们的返回值是可读但不可以写的,普通队列调用普通front和普通back,返回值可读可写。

namespace yzh
{template<class T, class Container = deque<T>>class queue{void push(const T& x)                //队尾入队列。{_con.push_back(x);}void pop()                          //对头出队列。{_con.pop_front();}T& front(){return _con.front();}//返回值可以被修改T& back(){return _con.back();}//返回值不可以被修改。T& front(){return _con.top();}const T& back()const{return _con.front();}//不可以被修改。const T& front() const{return _con.front();}bool empty() const{return _con.empty();}size_t size() const{return _con.size();}
}
http://www.hkea.cn/news/433829/

相关文章:

  • 怎么做平台网站百度seo报价方法
  • 帮人做网站 怎么收费怎么用网络推广
  • 网站排名优化建设百度广告投放技巧
  • 文件服务器网站搭建教程好的竞价托管公司
  • 黑龙江省城乡和住房建设厅网站首页百度链接地址
  • 网站模板修改工具专业seo关键词优化
  • 口碑好的句容网站建设yahoo搜索
  • 深圳网站建设外贸公司价格网络营销的背景和意义
  • 长春网站建设硕成传媒seo快速排名优化公司
  • web网站开发能使用c 吗免费建立个人网站申请
  • 织梦网站修改教程视频网站优化培训学校
  • 南沙区交通和建设局网站中国十大网络销售公司
  • 免费建设网站的方法百度网址大全 官网
  • 手机网站设计制作公司微信推广费用一般多少
  • 建设网站需要什么注册域名费用一般多少钱
  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好
  • 贵阳搜索玩的网站网络舆情软件免费入口
  • 前端自己写代码建网站要花多少钱游戏推广在哪里接活
  • 网站建设中+网页代码nba最新排名东西部
  • 东莞企业建设网站官网有限公司百度推广深圳分公司
  • 海外推广工作内容搜索引擎优化seo是什么
  • wordpress 发短信西安网络优化大的公司
  • dreamweaver个人网站南宁求介绍seo软件
  • 网站常用素材企业培训视频
  • 北京市通州区建设委员会网站网站新站整站排名
  • 太原网站推广只选中联传媒推广排名seo