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

济南高新区建设局网站做公司网站 找谁做

济南高新区建设局网站,做公司网站 找谁做,如何计算网站pv,网站建设公司河南STL中的容器适配器 一、容器适配器1、什么是容器适配器2、STL标准库中的容器适配器 二、stack的模拟实现1、stack的简单介绍2、栈的模拟实现 三、queue的模拟实现1、queue的简单介绍2、queue的模拟实现 四、priority_queue的模拟实现1、priority_queue的简单介绍2、priority_qu… STL中的容器适配器 一、容器适配器1、什么是容器适配器2、STL标准库中的容器适配器 二、stack的模拟实现1、stack的简单介绍2、栈的模拟实现 三、queue的模拟实现1、queue的简单介绍2、queue的模拟实现 四、priority_queue的模拟实现1、priority_queue的简单介绍2、priority_queue的模拟实现 一、容器适配器 1、什么是容器适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结)该种模式是将一个类的接口转换成客户希望的另外一个接口。 例如我们常见的充电器就是一种适配器它将我们常用的220V交流电压转化为45V (或者其他更高的电压) 的直流电压来给我们的电子设备进行充电。 2、STL标准库中的容器适配器 虽然stack和queue priority_queue中也可以存放元素但在STL中并没有将其划分在容器的行列而是将其称为容器适配 器这是因为stack和队列只是对其他容器的接口进行了包装STL中stack和queue默认使用dequepriority_queue默认使用了vector。 二、stack的模拟实现 1、stack的简单介绍 相关文档 stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类但这些容器类应该支持以下操作 empty判空操作back获取尾部元素操作push_back尾部插入元素操作pop_back尾部删除元素操作 标准容器vector、deque、list均符合这些需求默认情况下如果没有为stack指定特定的底层容器默认情况下使用deque。 2、栈的模拟实现 为了栈的通用性这里我们使用模板来进行模拟栈关于栈的底层容器这里我们选择vector来进行模拟实现。 templateclass T, class Container vectorT class stack { public://栈的插入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();}//获取数据个数size_t size() const{//返回底层容器中数据的个数return _con.size();}//判空函数bool empty() const{//对底层容器进行判空return _con.empty();} private://成员变量是一个容器创建的对象Container _con; };三、queue的模拟实现 1、queue的简单介绍 相关文档 queue底层容器可以是标准容器类模板之一也可以是其他专门设计的容器类。该底层容器应至少支持以下操作: empty检测队列是否为空size返回队列中有效元素的个数front返回队头元素的引用back返回队尾元素的引用push_back在队列尾部入队列pop_front在队列头部出队列 标准容器类deque和list满足了这些要求。默认情况下如果没有为queue实例化指定容器类则使用标准容器deque。 2、queue的模拟实现 为了queue的通用性这里我们使用模板来进行模拟queue关于queue的底层容器这里我们选择list来进行模拟实现。 templateclass T, class Container listT class queue { public://队列的插入void push(const T val){//使用底层容器中尾插函数进行插入,队列只能进行队尾插入_com.push_back(val);}//队列的删除void pop(){//使用底层容器中头删函数进行删除,队列只能进行队头删除_com.pop_front();}//获取队头数据T front(){//返回底层容器中第一个数据return _com.front();}//const版本const T front() const{return _com.front();}//获取队尾数据T back(){//返回底层容器中最后一个数据return _com.back();}//const版本const T back() const{return _com.back();}//获取数据个数size_t size() const{//返回底层容器中数据的个数return _com.size();}//判空函数bool empty() const{//对底层容器进行判空return _com.empty();} private://成员变量是一个容器创建的对象Container _com; };四、priority_queue的模拟实现 1、priority_queue的简单介绍 相关文档 优先队列是一种容器适配器它其实就是我们数据结构中的堆,默认情况下priority_queue是大堆。 priority_queue底层容器可以是任何标准容器类模板也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问并支持以下操作 empty检测容器是否为空size返回容器中有效元素个数front返回容器中第一个元素的引用push_back在容器尾部插入元素pop_back删除容器尾部元素 标准容器类vector和deque满足这些需求。默认情况下如果没有为特定的priority_queue类实例化指定容器类则使用vector。 2、priority_queue的模拟实现 与前面的栈与队列一样priority_queue前两个模板参数都类似,但是priority_queue要有第三个模板参数这个参数表示按照什么方式进行比较即建立大堆还是小堆。 //第三个参数是比较方式需要传递一个仿函数来确定比较方式,默认传递的是lessT,表示建大堆 templateclass T, class Container vectorT, class Comper lessT class priority_queue { public://获取堆顶数据const T top() const{//返回底层容器的第一个数据return _con.front();}//获取数据个数size_t size() const{//返回底层容器的数据个数return _con.size();}//判空函数bool empty() const{//判断底层容器是否为空return _con.empty();}//堆的插入void push(const T val){//从尾部插入_con.push_back(val);int child _con.size() - 1;//向上调整重新建堆AdjustUp(child);}//堆的删除void pop(){//检查堆是否为空assert(!_con.empty());//交换堆顶与最后一个数据swap(_con.front(), _con.back());//删除最后一个数据_con.pop_back();//从堆顶进行向下调整重新建堆AdjustDown(0);}private://向上调整算法void AdjustUp(int child){Comper com;int parent (child - 1) / 2;while (child 0){//这里使用了仿函数来判断建立什么堆//比较的位置_con[parent], _con[child]是不能换的if (com(_con[parent], _con[child])){swap(_con[parent], _con[child]);child parent;parent (child - 1) / 2;}else{break;}}}//向下调整算法void AdjustDown(int parent){Comper com;//默认左孩子更符合建堆的要求int child parent *2 1;while (child _con.size()){if (child 1 _con.size() Comper()(_con[child], _con[child 1])){child;}if (com(_con[parent], _con[child])){swap(_con[parent], _con[child]);parent child;child parent * 2 1;}else{break;}}}//成员变量是一个容器创建的对象Container _con; };
http://www.hkea.cn/news/14334374/

相关文章:

  • 做网站用什么字体最明显有人做网站花了10几万
  • 个人博客网站备案房地产信息发布平台官网
  • 电脑版商城网站建设四川省城乡和住房建设厅网站首页
  • 成品网站怎么被百度收录装修公司的网站
  • 网站建设投诉去哪里投诉ios风格网站模板
  • 网站建设上传视频教程微网站 制作
  • 红鱼洞水库建设管理局网站市场营销是做什么的
  • 哪里有建网站的开发微信小程序大概需要多少钱
  • 专业网站建设联系电话做网站最好的公司有哪些
  • 四川省城乡住房与建设厅网站首页phpstudy
  • 私人搭建服务器seo优化心得
  • 找网站建设需要问什么软件出口外贸网站
  • 怎么建设淘宝联盟的网站做vip视频网站侵权
  • 建德网站seo邢台网站建设要多少钱
  • 一键网站提交网站备案查询站长工具
  • 怎么开发销售网站专业网站推广公司
  • 非常好的资讯网站设计wordpress 电影解析
  • 怎样做免费网站卖东西美容产品网站建设多少钱
  • 那些网站专门做棋牌推广的企业网站打不开的原因
  • 昆明网页重做南昌网站排名优化报
  • 长沙网站优化方案机票网站开发知乎
  • jsp商业网站开发网站系统排名
  • 三门县住房和城乡建设规划局网站陕西网站关键词自然排名优化
  • 2021网站建设前景怎么样网站后台编辑器不能正常显示
  • 公司网站 开源钓鱼网站链接
  • 网站设立前置审批ppt模板下载后怎么导入
  • 图片做视频在线观看网站贵阳网站建设在线
  • 专业的模板建站企业杭州百度快照
  • 给公司做网站怎么样重庆公司注销的流程及需提供的材料
  • 网站建设宗旨是指最新闻头条新闻