.net 做网站从优化角度来建设网站

pingmian/2025/10/8 12:59:07/文章来源:
.net 做网站,从优化角度来建设网站,天津移动网站设计,什么网站可以销售自己的产品目录 1.什么是queue 2.模拟实现 3.仿函数 模板参数Compare 仿函数 4.什么是priority_queue 模拟实现 1.什么是queue 1.队列是一种容器适配器#xff0c;专门用于在FIFO上下文(先进先出)中操作#xff0c;其中从容器一端插入元素#xff0c;另一端提取元素。 2.队列作为…目录 1.什么是queue 2.模拟实现 3.仿函数 模板参数Compare 仿函数 4.什么是priority_queue 模拟实现 1.什么是queue 1.队列是一种容器适配器专门用于在FIFO上下文(先进先出)中操作其中从容器一端插入元素另一端提取元素。 2.队列作为容器适配器实现容器适配器即将特定容器类封装作为其底层容器类queue提供一组特定的成员函数来访问其元素。元素从队尾入队列从队头出队列。 3.底层容器可以是标准容器类模板之一也可以是其他专门设计的容器类。该底层容器应至少支持以下操作: 4.标准容器类deque和list满足了这些要求。默认情况下如果没有为queue实例化指定容器类则使用标准容器deque。 empty检测队列是否为空size返回队列中有效元素的个数front返回队头元素的引用back返回队尾元素的引用push_back在队列尾部入队列pop_front在队列头部出队列 用法跟stack一样可以看上一篇文章 2.模拟实现 queue.h #include string.h #includeiostream #includestack #includedequeusing namespace std;namespace lty {templateclass T, class Container dequeTclass queue{public:void push(const T x){_con.push_back(x);}void pop(){_con.pop_front();}T front(){return _con.front();}T back(){return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;};void testqueue(){queueint,dequeint q;q.push(1);q.push(2);q.push(3);q.push(4);q.push(5);while (!q.empty()){cout q.front() ;q.pop();}cout endl;} }queue.cpp #include queue.husing namespace std;int main() {lty::testqueue(); } 3.仿函数 模板参数Compare #include iostream #include queueint main() {std::priority_queueint maxHeap; // 默认大堆std::priority_queueint, std::vectorint, std::greaterint minHeap; // 小堆maxHeap.push(5);maxHeap.push(3);maxHeap.push(8);minHeap.push(5);minHeap.push(3);minHeap.push(8);std::cout Max Heap (Top element): maxHeap.top() std::endl;std::cout Min Heap (Top element): minHeap.top() std::endl;return 0; }仿函数 仿函数实际就是一个类这里类实例化出来的对象叫做函数对象下面命名空间wyn中的两个仿函数就分别是两个类在使用时直接用类进行实例化对象然后让对象调用()的运算符重载这样我们看到的调用形式就非常像普通的函数调用但实际上这里并不是函数调用而是仿函数实例化出来的对象调用了自己的operator()重载成员函数。 namespace lty {template class Tclass less{public:bool operator()(const T x, const T y)const{return x y;}};template class Tclass greater{public://将仿函数放成public要不然class默认是私有的bool operator()(const T x, const T y)const{return x y;}}; } int main() {lty::lessint lessFunc;lty::greaterint greaterFunc;lessFunc(1, 2);//你以为这里是函数调用但他其实是仿函数对象lessFunc调用了他的成员运算符重载()函数。 }4.什么是priority_queue 优先级队列的适配会更复杂一些些。它的适配容器用的是vector。 优先级队列就不是什么先进先出了它虽然叫队列但它不是真队列。其实它的底层是堆可以在任意时刻插入数据默认是大堆当然也可以通过仿函数去调整。 优先级队列有一个反人类的设计传less仿函数底层是大堆。传greater仿函数底层是小堆。 它的一些接口 priority_queue和queue以及stack一样他们都是由底层容器适配出来的适配器之不过priority_queue采用的适配容器不再是deque而是vector选择vector的原因也非常简单在调用向上或向下调整算法时需要大量频繁的进行下标随机访问这样的情境下vector就可以完美展现出自己结构的绝对优势 模拟实现 #pragma oncenamespace lty {// Compare进行比较的仿函数 less-大堆// Compare进行比较的仿函数 greater-小堆templateclass T, class Container vectorT, class Compare std::lessTclass priority_queue{public:priority_queue(){}template class InputIterator priority_queue(InputIterator first, InputIterator last){while (first ! last){_con.push_back(*first);first;}for (int i (_con.size()-1-1)/2; i 0; --i){adjust_down(i);}}void adjust_up(size_t child){Compare com;size_t parent (child - 1) / 2;while (child 0){if (com(_con[parent], _con[child])){std::swap(_con[child], _con[parent]);child parent;parent (child - 1) / 2;}else{break;}}}void push(const T x){_con.push_back(x);adjust_up(_con.size() - 1);}void adjust_down(size_t parent){Compare com;size_t child parent * 2 1;while (child _con.size()){if (child 1 _con.size() com(_con[child],_con[child 1])){child;}if (com(_con[parent],_con[child])){std::swap(_con[child], _con[parent]);parent child;child parent * 2 1;}else{break;}}}void pop(){std::swap(_con[0], _con[_con.size() - 1]);_con.pop_back();adjust_down(0);}const T top(){return _con[0];}bool empty() const{return _con.empty();}size_t size() const{return _con.size();}private:Container _con;}; }命名空间 xzq 这段代码位于命名空间 xzq 中这是一个自定义的命名空间用于将相关的类、函数等封装在一起以避免与其他代码的命名冲突。 模板类 priority_queue 这是一个模板类它代表了一个优先队列的实现。它接受三个模板参数T元素类型Container底层容器类型默认为 std::vectorT和 Compare用于比较元素的仿函数默认为 std::lessT Compare 是一个模板参数用于进行元素的比较。它是一个仿函数可以是 std::lessT默认或 std::greaterT具体取决于用户提供的优先队列类型。Compare 仿函数用于确定在堆中的元素排序方式从而决定了是最大堆还是最小堆。在 priority_queue 类的各个成员函数中通过调用 Compare 仿函数来进行元素的比较从而实现了插入和调整堆的操作。 构造函数 priority_queue() 这是一个默认构造函数不需要使用 Compare 仿函数进行比较。 构造函数模板 priority_queue(InputIterator first, InputIterator last) 在构造函数内部使用 Compare 仿函数来执行比较操作以确定元素的顺序。在添加元素后通过调用 adjust_down 函数来构建堆。 成员函数 adjust_up(size_t child) 在上浮操作中使用 Compare 仿函数执行比较以确定是否需要交换父子节点的位置从而保持堆的性质。 成员函数 push(const T x) 在插入操作中首先将新元素添加到底层容器 _con然后通过调用 adjust_up 函数来执行上浮操作保证新元素位于合适的位置。 成员函数 adjust_down(size_t parent) 在下沉操作中使用 Compare 仿函数执行比较以确定是否需要交换父子节点的位置从而保持堆的性质。 成员函数 pop() 在删除操作中首先将顶部元素与底层容器的最后一个元素交换然后通过调用 adjust_down 函数来执行下沉操作保证堆的性质。 成员函数 const T top() 通过返回 _con[0]获取优先队列的顶部元素。

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

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

相关文章

做绿色软件的网站知乎网站开发项目进度表

淘宝API调用 申请 获取session key 在调用淘宝的API时,我们都会用到appkey,appsecret,appsession。 1、我们申请应用就会有appkey和appsecret了 2、正式环境下获取SessionKey 注意:web插件平台应用和web其它应用在正式环境下是同样的获取方法 1&…

精品课程网站建设的背景及意义wordpress 本地建站

Dockerfile就是利用固定的指令来描述镜像的结构和构建过程,这样Docker才可以依次来构建镜像; 将springboot项目打包上传到指定目录,并且编写一个dockefile文件放在jar包的同级目录 输入命令 打包镜像 成功打包显示 运行镜像

永州市建设工程质量安全监督站官方网站网页怎么设计好看

addroi 作用 在视频帧上标记一块感兴趣的区域。 帧数据被原封不动地传递,但元数据被附加到帧,指示可能影响后续编码行为的感兴趣区域。可以通过多次应用过滤器来标记多个区域。 参数 qoffset: 应用在此区域的量化偏移。 参数范围:-1 ~ …

背景网站建设公司鹿班设计官网

知识点: 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些,各自的优劣是什么_哔哩哔哩_bilibili

seo优化网站建设网站切版教程

【来函照登 我也说几句】 作者:Deng-Xian-Sheng(佳里敦大学人工智能研究所 类脑人工智能研究实验室副教授) 我在网上看到某些报道,在谈到人工智能研发时,刻意强调个别研发人员学历不高,甚至以“中专生逆袭…

vps可以做多少网站wordpress客户端连接数据库连接

当在室外测试网线和光纤时,天气的温度不仅会影响到工作的效率,电缆如果进行拉扯弯折也可能会在安装测试过程中受损。福禄克指定经销商—明辰智航的工程师推荐您了解一下安装测试电缆时的电缆可承受的温度。 在冬天,寒冷的天气致使工作总是不会…

和网站建设签合同网站留言板怎么做php

go gin gorm连接postgres postgis输出geojson 1. 技术环境 go-gin-gorm postgres-postgis go vscode环境安装-智能提示配置 2. 简单实现代码 思路就是:采用原生sql实现查询、更新等,采用gorm的raw来执行sql语句 package mainimport ("fmt"&q…

定制网站收费网站seo怎么做知乎

关于移动端适配(必须要知道的,亲测有效)一、各种单位概念理解二、移动,web开发三、移动端适配1、视口(viewport)概念2、视口(viewport)适配(代码)3、rem单位适配flexible方案竖屏、横屏、ipad、PC最全的适配…

asp.net 项目成本预算系统的 网站开发网站购物系统制作雨辰资讯电子商务类网站开发

一、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把…

网站开发需要的资源汕头市建设局网站

注意两点:1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中。2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取。例子新建一个 maven 目录App.java 用于读取 resources 中的 a.txt 内容…

网站风格定位怎么写做360优化网站都有哪家

本文主要的目的是 1. 说明Entity Framework Power Tools如何使用。 2. Entity Framework 快速门 实验环境: OS: Windows Server 2012, Windows 7 DE: VS2013 MVC 6.0Entity Framework SQL Server 2012 准备工作 基于现有数据库生成POCO数据类和数据库上下文需要借…

网站是什么平台一个空间做多个网站

1、安装前置插件 yum -y install gcc-c pcre pcre-devel openssl openssl-devel 2、下载安装包 下载地址:nginx: download 这里最好使用最新的安装包,过老的版本会有一堆系统漏洞需要修复 #进入源码放置目录 这里最好放在好找的地方,后…

做网站 挣广告联盟的佣金做金属的网站

随着Web应用程序的发展,越来越多的人开始利用Websocket技术来构建实时应用程序。Websocket是一种在客户端和服务器之间建立持久连接的协议。这种协议可以在一个单独的连接上实现双向通信。与HTTP请求-响应模型不同,Websocket允许服务器自主地向客户端发送…

售后服务方案 网站建设电子请帖免费制作app

全志A20平板,摸索了一下fastboot,但是烧录失败,提示找不到分区。于是就想到用TF卡烧录boot.img,因为只修改了内核,不想打包全部烧录一遍。 启动到uboot命令行,输入mmcinfo初始化mmc,不过提示&am…

网站建设客户评价响应式布局有几种方法

企微云CRM操作指南 – 道一云|企微https://wbg.do1.com.cn/xueyuan/2568.html 销售云 - 美洽 - 连接客户,亲密无间https://meiqia.com/sales-cloud 转载于:https://www.cnblogs.com/rgqancy/p/10695466.html

网站怎么发布信息怎么弄免费的空间做网站

系统是由相互作用和相互依赖的若干部分,按一定规律结合成的、具有特定功能的有机整体。系统有下述特性: (1)集合性。系统是由许多元素有机地组成的整体。每个元素服从整体,追求全局最优。 (2)相…

班级网站建设php上海市企业服务云网站

一、Hive 小文件概述 在Hive中,所谓的小文件是指文件大小远小于HDFS块大小的文件,通常小于128 MB,甚至更少。这些小文件可能是Hive表的一部分,每个小文件都包含一个或几个表的记录,它们以文本格式存储。 Hive通常用于…

红酒营销 网站建设宝安网站建设哪家便宜

ORDER BY FIELD() 自定义排序逻辑 MySql 中的排序 ORDER BY 除了可以用 ASC 和 DESC,还可以通过 「ORDER BY FIELD(str,str1,…)」 自定义字符串/数字来实现排序。这里用 order_diy 表举例,结构以及表数据展示: ORDER BY FIELD(str,str1,…) …

长春seo技术长沙网站优化诊断

查看datasheet和确认GPIO复用引脚scheme 通过查看mt7628 datasheet可以明确复用关系: 在这里我以I2S对应的GPIO引脚为例。 查看 mt7628an.dtsi 文件中对gpio的注册 $(TOPDIR)假定为宿主机上 OpenWrt 的编译目录。 在$(TOPDIR)/target/linux/ramips/dts/mt7628an.d…

门户网站建设方法无极网站建设定制

使用pyzbar模块来识别二维码和条形码。ZBar是一个开源软件,用来从图像中读取条形码,支持多种编码,比如EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5以及二维码。 pyzbar是python封装ZBar的模块,我们用它来做条形码和二维码的识别。…