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

做类似猪八戒网的网站用jsp做的网站源代码

做类似猪八戒网的网站,用jsp做的网站源代码,开发一款app软件怎么赚钱,百度地图电脑版网页目录 一、priority_queue的介绍和使用 1.1 priority_queue的介绍 1.2 priority_queue的基本接口 二、仿函数的介绍 2.1 基本概念 2.2 适用场景 三、模拟实现priority_queue 3.1 向上调整算法 3.2 向下调整算法 3.3 整体框架 一、priority_queue的介绍和使用 1.1 prio…目录 一、priority_queue的介绍和使用 1.1 priority_queue的介绍 1.2 priority_queue的基本接口 二、仿函数的介绍 2.1 基本概念 2.2 适用场景 三、模拟实现priority_queue 3.1 向上调整算法 3.2 向下调整算法 3.3 整体框架 一、priority_queue的介绍和使用 1.1 priority_queue的介绍 优先队列是一种容器适配器根据严格的弱排序标准它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆在堆中可以随时插入元素并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被实现为容器适配器容器适配器即将特定容器类封装作为其底层容器类queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出其称为优先队列的顶部。底层容器可以是任何标准容器类模板也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问并支持以下操作 empty()检测容器是否为空 size()返回容器中有效元素个数 front()返回容器中第一个元素的引用 push_back()在容器尾部插入元素  pop_back()删除容器尾部元素 5. 标准容器类vector和deque满足这些需求。默认情况下如果没有为特定的priority_queue类           实例化指定容器类则使用vector。      6. 需要支持随机访问迭代器以便始终在内部保持堆结构。容器适配器通过在需要时自动调用           算法函数make_heap、push_heap和pop_heap来自动完成此操作。 1.2 priority_queue的基本接口 函数声明接口说明 priority_queue()/priority_queue(first, last)构造一个空的优先级队列 empty( ) 检测优先级队列是否为空是返回true否则返 false top( )返回优先级队列中最大(最小元素)即堆顶元素 push(x)在优先级队列中插入元素x pop()删除优先级队列中最大(最小)元素即堆顶元素 如有不清晰的可以去查看http://cplusplus.com具体的文档 二、仿函数的介绍 2.1 基本概念 仿函数是一种可被调用的对象它可以像函数一样被使用。在C中仿函数是一种重载了函数调用运算符 operator() 的类或结构体它可以被当作函数来调用接受参数并返回结果。        在刚刚我们所讲的priority_queue就可以看到仿函数的使用        看这个 less 这个模板参数它其实就是一个仿函数接口这里我们简单的介绍一下less less这个仿函数实现的功能其实就是让我们的优先队列按降序排列即大堆与之相对应的就是greater这个仿函数其被引入进优先队列的作用是让其数据按升序排列即小堆。 大概懂了仿函数是个什么样的东西那我们大概的来模拟实现less一下吧。 class less {bool opeartor()(int x,int y){return xy;} } 写仿函数需要注意他一定是用class进行修饰的且其主要是对进行的重载我们写的这个less只适用于整型未免太单调了我们不妨给他加个模板。 templateclass T class less {bool opeartor()(T x,T y){return xy;} } 2.2 适用场景 首先就是priority_queue这个容器需要仿函数这个接口当我们使用自定义类型时需要我们自己编写一个仿函数接口。再比如说使用 sort 时其同样有一个仿函数的接口举例 实现一个升序排序 vectorint st{1,9,8,5,6,7,3,2,1,4}; sort(st.begin(),st.end(),greaterint); 三、模拟实现priority_queue 要知道priority_queue实际上是一个堆既然是堆那就会涉及到我们的向上调整算法和向下调整算法这也是我们的主要编写内容。 3.1 向上调整算法 void adjust_up(int child){int parent (child - 1) / 2;while (parent 0){if (comp(c[parent], c[child])){std::swap(c[parent], c[child]);}elsebreak;child parent;parent (child - 1) / 2;}} 这里可以发现我们的比较方法是使用的仿函数这样就可以根据我们传入的仿函数的不同来定义不同的堆是不是很方便。 这里如果不是很懂的话可以去查看一下堆的知识。 3.2 向下调整算法 void adjust_down(int parent){int child parent * 2 1;while (child size()){if (child1size()comp(c[child], c[child1])){child 1;}if (comp(c[parent], c[child])){std::swap(c[child], c[parent]);}elsebreak;parent child;child parent * 2 1;}} 可不要忘了向下调整算法的边界判断哦。 3.3 整体框架 接口实现方面和之前的内容差不多这里我直接给大家上代码 namespace bit {template class T, class Container vectorT, class Compare lessT class priority_queue{public:void adjust_up(int child){int parent (child - 1) / 2;while (parent 0){if (comp(c[parent], c[child])){std::swap(c[parent], c[child]);}elsebreak;child parent;parent (child - 1) / 2;}}void adjust_down(int parent){int child parent * 2 1;while (child size()){if (child1size()comp(c[child], c[child1])){child 1;}if (comp(c[parent], c[child])){std::swap(c[child], c[parent]);}elsebreak;parent child;child parent * 2 1;}}priority_queue(){}template class InputIteratorpriority_queue(InputIterator first, InputIterator last):c(first,last){for (int i (size() - 1 - 1) / 2; i 0; i--){adjust_down(i);}}bool empty() const{return c.empty();}size_t size() const{return c.size();}const T top() const{return c[0];}void push(const T x){c.push_back(x);adjust_up(size() - 1);}void pop(){std::swap(c[0], c[size() - 1]);c.pop_back();adjust_down(0);}private:Container c;Compare comp;};};
http://www.pierceye.com/news/690734/

相关文章:

  • 酒店电子商务网站策划书网站排名下降的原因
  • 成都网站制作公司报价成都装修公司哪家好
  • 用自己的电脑做网站需要备案吗wordpress rss教程
  • 洛阳网站搭建江西网站建设价格低
  • 戴尔网站建设的目的济宁哪里有做网站的
  • 给单位做网站需要多少钱wordpress手机编辑
  • 网站开发实验报告总结怎样搭建微网站
  • 诸暨有哪些制作网站公司代理品牌
  • jsp mysql 网站开发响应网官方网站
  • 小白网站建设教程服务器域名多少钱
  • 网站建设预付款比例网站平台建设公司经营范围
  • 付费阅读网站代码CMS源码就可以做网站吗
  • 企业网站用视频做首页wordpress 多主题插件下载
  • 阿里巴巴网官方网站新公司在哪做网站
  • 邢台专业做网站报价做一门户网站价格
  • 中山企业手机网站建设设计方案翻译
  • 江苏省品牌专业群建设专题网站wordpress 返利 插件
  • 建设部网站官网设计排版网站
  • 企业网站建设应避免数据孤岛网站建设费入何科目
  • wordpress数据量大网站访问石家庄网站建设招商
  • 公司核名在哪个网站免费申请无限流量卡
  • 做网站和网页的目的和作用是什么山西2地又检出阳性
  • 自助网站建设推广优化策略wordpress中文采集插件
  • 网站开发及运营成本做网站 公司 个体
  • 永久免费建站地址苏州h5网站建设价钱
  • 室内设计网站网站建设中请稍后再访问
  • 十堰网站开发培训编程软件手机
  • 南京网站优化推广微网站缺点
  • 大连零基础网站建设培训哪里有固安县建设局网站
  • 怎么制作网站首页培训心得体会总结简短