网站里面如何在新闻列表上显示hot微信公众平台开发商

diannao/2026/1/18 2:04:06/文章来源:
网站里面如何在新闻列表上显示hot,微信公众平台开发商,wordpress模板工作室,php站点搭建文章目录 优先级队列的使用大堆小堆**注意** 优先级队列的模拟实现pushpopsizeemptytop 仿函数仿函数是什么pushpop 仿函数结合优先级队列的优势 优先级队列的使用 优先级队列本质是就是完全二叉树,是个堆.我们可以用优先级队列来取出一段序列中的前N个最大值. priority_queue… 文章目录 优先级队列的使用大堆小堆**注意** 优先级队列的模拟实现pushpopsizeemptytop 仿函数仿函数是什么pushpop 仿函数结合优先级队列的优势 优先级队列的使用 优先级队列本质是就是完全二叉树,是个堆.我们可以用优先级队列来取出一段序列中的前N个最大值. priority_queueint pq;第一个模板参数是数据类型,第二个是容器适配器,通俗点来讲就是这个堆用什么容器来实现,第三个就是排序方式(用仿函数来实现),这个能决定这个堆是大堆还是小堆. 大堆 #includeiostream #includevector #includequeue using namespace std; int main() {priority_queueint pq;pq.push(1);pq.push(100);pq.push(66);pq.push(9);pq.push(20);pq.push(2);pq.push(8);while (!pq.empty()){cout pq.top() ;pq.pop();}cout endl;return 0; }将一些无序的数据存到优先级队列里面,它会给数据排成一个堆,我们可以依次取出数据,然后删除. 默认是大堆 小堆 priority_queueint, vectorint, greaterint pq; 只需要在定义时声明就行. 注意 greater是小堆,less是大堆 优先级队列的模拟实现 这里我们先实现一个大堆 templateclass T, class Container vectorTclass priority_queue{private:Container _con;}因为二叉树push数据的时候经常要交换位置,我们经常要访问它的父亲节点和子节点,所以默认的容器适配器是vector,你也可以改成deque(双向队列) push void push(const T val){_con.push_back(val);adjust_up(_con.size() - 1);}堆的插入是尾插,然后再把这个数据向上调整 void adjust_up(size_t child){size_t parent (child - 1) / 2;while (child 0){if(_con[child] _con[parent]){swap(_con[child], _con[parent]);child parent;parent (child - 1) / 2;}else{break;}}}比较逻辑:找到父亲节点,将父亲节点和子节点比较,如果子节点父亲节点,交换,然后更新节点. 注意:父亲节点(子节点-1)/2 pop void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();adjust_down(0);}在删除节点的时候,为了效率.我们把第一个节点和最后一个节点交换,删除最后一个节点(此时堆的最大值).再把第一个节点(原来的最后一个节点)向下调整. void adjust_down(size_t parent){size_t child parent * 2 1;if (child 1 _con.size() _con[child] _con[child 1])child;while (child _con.size()){if (_con[parent]_con[child]){swap(_con[parent], _con[child]);parent child;child parent * 2 1;}else{break;}}}向下调整的过程中,如果满足父亲节点子节点,二者交换.直到父亲节点子节点或者子节点越界. 注意在向下调整的过程中始终选择大的孩子进行比较,这是为了满足大堆的性质,父亲节点一定子节点. 左孩子父亲节点21,右孩子父亲节点22 size size_t size(){return _con.size();}size和empty都可以复用vector里面的函数,但是我们要在前面包上vector的头文件 empty bool empty(){return _con.empty();}top const T top(){return _con[0];}堆的头就是数组里面的第一个数据 仿函数 我们如果要改变大小堆的话,其实只需要把小于改成大于,大于改成小于就行.但如果每次都这么改,会大大增加我们的工作量,在c语言中,我们可以使用函数指针来解决.在c中,祖师爷设计了一种更方便的做法,也就是仿函数. 仿函数是什么 仿函数本质上是一个类,这个类能模拟函数的行为.实现内置类型或者自定义类型的比较 templateclass T struct Less {bool operator()(const T x, const T y){return x y;} }; int main() {Lessint func;cout func(1, 2) endl;cout func.operator()(1, 2) endl;return 0; }func(1,2)看起来是不是跟我们平时调用函数一样,传两个参数.实际上,Less仿函数里对()进行操作符重载,让我们可以比较两个数的大小 这个做法衍生到堆上面,我们可以传两个仿函数,一个大于,一个小于.然后在堆里面实例化出对象. templateclass Tstruct greater{bool operator()(const T t1,const T t2){return t1 t2;}};templateclass Tstruct less{bool operator()(const T t1, const T t2){return t1 t2;}};push void adjust_up(size_t child) {Compare com;size_t parent (child - 1) / 2;while (child 0){//if(_con[child] _con[parent])//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 val) {_con.push_back(val);adjust_up(_con.size() - 1); }pop void adjust_down(size_t parent){Compare com;size_t child parent * 2 1;if (child 1 _con.size() com(_con[child], _con[child 1]))child;while (child _con.size()){//if (_con[parent] _con[sun])if (com(_con[parent], _con[child])){swap(_con[parent], _con[child]);parent child;child parent * 2 1;}else{break;}}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();adjust_down(0);}仿函数结合优先级队列的优势 priority_queueint pq; priority_queueint,vectorint,greaterint pq;首先我们可以自己控制大堆/小堆. 其次在面对商品等复杂类型中,需要我们根据价格,评价,销量等等进行排序时.单靠商品类里面的一个操作符重载小于或者大于是不够的,我们可以写多个仿函数,争对价格,评价等进行比较.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

温州网站建网络项目设计方案

需要对 OpenSSH 服务器和客户端进行相应配置。以下是具体步骤: 配置 OpenSSH 服务器的加密算法 1. 编辑 OpenSSH 服务器的配置文件: 打开 sshd_config 文件: sudo nano /etc/ssh/sshd_config2. 设置加密算法(Ciphers&#xff…

微信上微网站怎么做的wordpress官使用方法

文章目录 前言一、算数运算符二、赋值运算符()1.赋值运算符()2.复合赋值运算符 总结 前言 两种非常基础的运算符,看一下就懂,不需要过多的去深究细节 一、算数运算符 稍微着重看下 除法/ (不要…

申请专利的网站淘宝 网站开发 退货

学习框架&#xff0c;刚开始的时候最烦的就是一些配置文件&#xff0c;有很多需要配置的东西&#xff0c;今天把这些配置文件信息稍微整理一下&#xff0c;以后说不定会用的到。 web.xml文件 <?xml version"1.0" encoding"UTF-8"?> <web-app xm…

做电子外贸网站哈尔滨seo搜索排名优化

知识点总结 第一章&#xff1a;软件工程概述 1、软件的定义&#xff1a;在运行中能提供所希望的功能与性能的程序使程序能够正确运行的数据及其结构描述软件研制过程和方法所用的文档。 2、软件危机&#xff1a;软件开发的生产率远远不能满足客观需要。开发的软件产品往往不能…

广州网站建设推荐乐云seocms建站系统 下载

为什么80%的码农都做不了架构师&#xff1f;>>> 针对移动互联网应用的网络建设和优化 截至2013年3月,移动互联网的人均上网时长和PC互联网相比差距已经扩大了29%.PC互联网向移动端迁移的趋势进一步凸显.小米是一家专注于iPhone和Android等新一代智能手机软件…

荆州公司做网站织梦转WordPress插件

Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志场景一场景二场景三场景四 列出文件/文件夹 命令&#xff1a;Ls(L…

爱站网关键词密度青岛新公司网站建设推广

在 js 中进行数学的运算时&#xff0c;会出现0.10.20.300000000000000004的结果&#xff0c;一开始认为是浮点数的二进制存储导致的精度问题&#xff0c;但这似乎不能很好的解释为什么在同样的存储方式下0.30.40.7可以得到正确的结果。本文主要通过浮点数的二进制存储及运算&am…

超能搜索引擎系统网站网页视频下载浏览器

源&#xff1a;STM8S和STM8L调试串口中断的注意点

如何利用网站模板做网站删除hao123主页

MessageBox.Show(); 显示消息窗口向用户展示消息。

黑山网站制作公司旅游网站建站

立即学习:https://edu.csdn.net/course/play/24458/296436?utm_sourceblogtoedu 什么是线程&#xff1f;&#xff08;以地铁为例&#xff09; 1.北京地铁、上海地铁、广州地铁称之为三个不同的进程&#xff1b;而上海1号线上海3号线称之为线程&#xff1b; 2.进程是资源单位&a…

无锡哪里做网站好铜陵seo

<?php 1.分页原理所需数据&#xff1a; 总记录数&#xff1a; $records mysql_num_rows() 每页显示&#xff1a; $pagesize 人为定义10 总页数&#xff1a; $pages $records/$pagesize 当前页&#xff1a; $page 自己选择2.分页的sql语句&#xff1a; SELECT * F…

做研学的企业网站郑州做网站公司电话

概念BIO 阻塞io&#xff0c;1.4之前NIO no-blocking io 非阻塞io&#xff0c;jdk1.4AIO 异步io&#xff0c;jdk1.7浏览器输入网址&#xff0c;敲下回车之后发生了什么&#xff1f;1.URL解析2.DNS解析概念&#xff1a;Domain Name System&#xff0c;域名系统&#xff0c;本质…

做网站 需要买云服务器吗seo的范畴是什么

首先exec函数族是进程中的常用函数&#xff0c;可以利用另外的进程空间执行不同的程序&#xff0c;在之前的fork创建子进程中会完全复制代码数据段等&#xff0c;而exec函数族则可以实现子进程实现不同的代码 int execl(const char *path, const char *arg, ... …

房地产设计网站网站开发主流

jdk 9和jdk8JDK 9引入了一个称为紧凑字符串的新功能。 鉴于Java程序中字符串的普遍存在&#xff0c;我认为这是一个非常重要的更改&#xff0c;所有Java开发人员都需要理解。 在此视频中&#xff0c;查理亨特&#xff08;Charlie Hunt&#xff09;解释了此新功能的历史和实现。…

网站秒收录工具网站建设是什么专业

一、条件测试操作 Shell环境根据命令执行后的返回状态值〈$?&#xff09;来判断是否执行成功&#xff0c;当返回值为О时表示成功.否则〈非О值)表示失败或异常。使用专门的测试工具---test命令&#xff0c;可以对特定条件进行测试&#xff0e;并根据返回值来判断条件是否成立…

网站快速排名的方法android手机软件开发教程

TMGM官网平台开户运作流程如下&#xff1a; 首先&#xff0c;投资者需要注册并登录TMGM官网平台。在平台上&#xff0c;投资者可以选择适合自己的交易账户类型&#xff0c;包括标准账户、高级账户等。 然后&#xff0c;投资者需要进行身份验证和资金入账操作。TMGM会要求投资…

转做海外买手的网站黑龙江网站备案

要解决这个问题&#xff0c;插入和删除可以用STL实现&#xff0c;2操作如果用树状数组实现的话&#xff0c;将数的值作为树状数组的下标&#xff0c;即值域。 树状数组有两种操作&#xff0c;一个是更新某点的值&#xff0c;另一个是求区间和。 mid (lr)/2 &#xff0c;求和 …

建立旅游网站的目的大连做网站价格

在上一篇文章《手把手教你用Abp vnext构建API接口服务》中&#xff0c;我们用ABP vnext实现了WebAPI接口服务&#xff0c;但是并非ABP模块化架构的最佳实践。我本身也在学习ABP&#xff0c;我认为ABP新手应该从最佳实践开始学习&#xff0c;可以少走很多弯路&#xff0c;所以写…

后台管理系统网站模板手机上做网站

其实&#xff0c;官方文档也说的很清楚了。主要贴一下我遇见的问题。环境&#xff1a;LNMP(LAMP没试过&#xff0c;有兴趣的同学可以试试&#xff0c;然后发出来)PHP5.3以上版本、php-mbstring模块、php-pdo模块、mysql数据库克隆或者下载代码&#xff1a;https://github.com/s…

药品推荐网站模板浉河网站建设

###用sh 用sh如果你希望使用 Shell 脚本来实现同样的功能&#xff0c;你可以编写一个简单的 Shell 脚本来执行。以下是一个示例 Shell 脚本&#xff0c;它可以读取 JSON 文件&#xff0c;并将每个章节保存到单独的文本文件中&#xff1a; #!/bin/bash# JSON 文件路径 json_fi…