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

胶南网站建设多少钱淘宝券搜索网站怎么做

胶南网站建设多少钱,淘宝券搜索网站怎么做,做网站手机软件,游戏网站模板下载目录 1.什么是适配器 2.deque 1.简单了解结构 2.deque的缺陷 3.为什么选择deque作为stack和queue的底层默认容器 3.stack#xff08;栈#xff09; 4.queue#xff08;队列#xff09; 5.仿函数 6.priority_queue#xff08;优先级队列#xff09;#xff08;堆…目录 1.什么是适配器 2.deque 1.简单了解结构 2.deque的缺陷 3.为什么选择deque作为stack和queue的底层默认容器 3.stack栈 4.queue队列 5.仿函数 6.priority_queue优先级队列堆 1.什么是适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设 计经验的总结)该种模式是将一个类的接口转换成客户希望的另外一个接口。 2.deque 1.简单了解结构 deque(双端队列)是一种双开口的连续空间的数据结构双开口的含义是可以在头尾两端进行插入和删除操作且时间复杂度为O(1)与vector比较头插效率高不需要搬移元素与 list比较空间利用率比较高。 deque并不是真正连续的空间而是由一段段连续的小空间拼接而成的实际deque类似于一个动态的二维数组其底层结构如下图所示 这里是有一个中枢数组存放着各个开出空间的起始地址也就是指针。而这些指针都是存放在中枢数组的中间位置以便头部的插入删除操作给整个指针数组前面的空间先空着等待有头插操作再放指针。 2.deque的缺陷 与vector比较deque的优势是头部插入和删除时不需要搬移元素效率特别高而且在扩容时也不需要搬移大量的元素因此其效率是比vector高的。 与list比较其底层是连续空间空间利用率比较高不需要存储额外字段。 但是deque有一个致命缺陷不适合遍历因为在遍历时deque的迭代器要频繁的去检测其是否移动到某段小空间的边界导致效率低下而序列式场景中可能需要经常遍历因此在实际中需要线性结构时大多数情况下优先考虑vector和listdeque的应用并不多而目前能看到的一个应用就是STL用其作为stack和queue的底层数据结构。 3.为什么选择deque作为stack和queue的底层默认容器 stack是一种后进先出的特殊线性数据结构因此只要具有push_back()和pop_back()操作的线性结构都可以作为stack的底层容器比如vector和list都可以queue是先进先出的特殊线性数据结构只要具有push_back和pop_front操作的线性结构都可以作为queue的底层容器比如 list。但是STL中对stack和queue默认选择deque作为其底层容器主要是因为 1. stack和queue不需要遍历(因此stack和queue没有迭代器)只需要在固定的一端或者两端进行操作。 2. 在stack中元素增长时deque比vector的效率高(扩容时不需要搬移大量数据比如realloc之类的)queue中的元素增长时deque不仅效率高而且内存使用率高。 3.stack栈 templateclass T, class Container dequeT class stack { public:void push(const T x){_con.push_back(x);}void pop(){_con.pop_back();}const T top() const{return _con.back();}size_t size() const{return _con.size();}bool empty() const{return _con.empty();}private:Container _con; }; 4.queue队列 templateclass T, class Container dequeT class queue { public:void push(const T x){_con.push_back(x);}void pop(){_con.pop_front();}const T front() const{return _con.front();}const T back() const{return _con.back();}size_t size() const{return _con.size();}bool empty() const{return _con.empty();}private:Container _con; }; 5.仿函数 仿函数顾名思义就是仿照函数写的一种模式。也就是在一个类里重载了运算符()。 templateclass T class Less { public:bool operator()(const T x, const T y){return x y;} };int main() {int a 3;int b 4;//用匿名对象调用仿函数bool c Lessint()(a, b);//用已经存在的对象调用仿函数Lessint com;bool d com(a, b);cout c endl;cout d endl;return 0; } 结果 6.priority_queue优先级队列堆 templateclass T class Less { public:bool operator()(const T x, const T y){return x y;} };templateclass T class Greater { public:bool operator()(const T x, const T y){return x y;} };// 默认是大堆 templateclass T, class Container vectorT, class Compare LessT class priority_queue { public:void AdjustUp(int child){Compare com;int parent (child - 1) / 2;while (child 0){//if (_con[parent] _con[child])if (com(_con[parent], _con[child])){swap(_con[child], _con[parent]);child parent;parent (child - 1) / 2;}else{break;}}}void push(const T x){_con.push_back(x);AdjustUp(_con.size() - 1);}void AdjustDown(int parent){// 先假设左孩子小size_t child parent * 2 1;Compare com;while (child _con.size()) // child n说明孩子不存在调整到叶子了{// 找出小的那个孩子//if (child 1 _con.size() _con[child] _con[child 1])if (child 1 _con.size() com(_con[child], _con[child 1])){child;}//if (_con[parent] _con[child])if (com(_con[parent], _con[child])){swap(_con[child], _con[parent]);parent child;child parent * 2 1;}else{break;}}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDown(0);}const T top(){return _con[0];}size_t size() const{return _con.size();}bool empty() const{return _con.empty();}private:Container _con; };
http://www.hkea.cn/news/14396415/

相关文章:

  • 网站建设0doit赣州网站建设哪家便宜
  • 小程序平台推广方案优化方案生物必修一
  • 怎样做娱乐网站网站免费永久
  • 沧州网站艰涩很高安网站制作
  • 微信网站流程自己做自媒体在哪个网站比较好
  • 昆明做凡科网站英文网站建设方法
  • 德语网站建设注意事项网站备案是 备案空间吗
  • 无锡高端网站设计wordpress+Apache升级
  • 郑州网站优化效果wordpress遇到的问题
  • 自己做网站 最好的软件下载西安企业网站开发哪家好
  • 网站欣赏公司网站案例众车网是哪家公司网站
  • 做网站的人跑了网站可以恢复吗静态网站html模板下载
  • 潮州南桥市场中国建设银行网站seo管理
  • 怎么做网站建设赚钱专业外包
  • php开发的培训网站建设wordpress 默认编辑器
  • 手机网站和网站一体创意产品设计及介绍
  • 做网站 信科网络网站单选框的实现
  • 深圳网站制作公司深圳网站制作公司江阴公司网站建设
  • 怎么建设国际网站首页wordpress轻语博客
  • 网站技建设费计入什么科目网站制作要钱吗
  • 有没有发布需求的网站苏州网站建设与网络营销
  • 崇明建设镇乡镇府网站国家建设工程标准化信息网
  • 做网站能挣钱湖南省建设厅官网查询
  • 义乌多语言网站建设想学企业管理课程
  • 帝国cms做门户网站seo网站优化策划书
  • 天津做胎儿鉴定网站wordpress app
  • 公司网站制作税目上传资料网站
  • 做挂广告网站网站愉建设
  • 公司网站设计建议wordpress 权限管理
  • 做体彩网站怎么做在阿里云域名可以做网站吗