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

网站建设,从用户角度开始解封后中国死了多少人

网站建设,从用户角度开始,解封后中国死了多少人,营销知识和技巧,淄博seo方案文章目录一、priority_queue类简介二、priority_queue类常用接口三、priority_queue类的使用四、STL中priority_queue类的模拟实现一、priority_queue类简介 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。…

文章目录

  • 一、priority_queue类简介
  • 二、priority_queue类常用接口
  • 三、priority_queue类的使用
  • 四、STL中priority_queue类的模拟实现

一、priority_queue类简介

  1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的
  2. 类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。
  3. 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类元素从特定容器的“尾部”弹出,其称为优先队列的顶部。
  4. 底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问,并支持以下操作:empty() 检测容器是否为空size():返回容器中有效元素个数front():返回容器中第一个元素的引用push_back():在容器尾部插入元素pop_back():删除容器尾部元素
  5. 标准容器类vectordeque满足这些需求。默认情况下,如果没有为特定的priority_queue类实例化指定容器类,则使用vector
  6. 需要支持随机访问迭代器,以便始终在内部保持堆结构。容器适配器通过在需要时自动调用算法函数make_heap、push_heap和pop_heap来自动完成此操作。

  以上内容来自:www.cplusplus.com priority_queue类文档的介绍,在STL的学习中,推荐大家看这个文档,对每个类都有详细的介绍。


总结

  优先级队列 (priority_queue) 属于STL中的容器适配器,其底层存储数据的容器默认使用vector,并且使用堆算法使得vector中的元素构造成堆的结构。所以,可以说优先级队列 (priority_queue) 就是堆,默认情况下是大堆在使用时,与queue相同,要引入头文件#include<queue>


二、priority_queue类常用接口

函数名称功能说明
priority_queue()构造一个空的优先级队列
priority_queue(first,last)构造一个空的优先级队列
empty()检测优先级队列是否为空,是返回true,否则返回false
top( )返回优先级队列中最大/最小元素,即堆顶元素
push(X)在优先级队列中插入元素X
pop()删除优先级队列中最大/最小元素,即堆顶元素

priority_queue类常用接口应用

#include<iostream>
#include<queue>
#include<vector>
#include<functional> 
using namespace std;int main()
{vector<int> v = { 10,60,50,20 };//priority_queue<int> pq;priority_queue<int> pq(v.begin(),v.end());pq.push(30);while (!pq.empty()){cout<< pq.top()<<" ";pq.pop();}return 0;
}

三、priority_queue类的使用

切换大小堆

   默认情况下,priority_queue是创建的是大堆,其底层按照小于号比较,默认模板参数为template<class T, class Container =std::vector<T>, class Compare = std::less<T>>;如果要创建小堆,将第三个模板参数换成greater即可,例如priority_queue<int, vector<int>, greater<int>> pq2(v.begin(), v.end());


greater<int>less<T>

  greater和less的头文件为#include <functional>,具体实现见第三节模拟实现部分。 <functional>是C++标准库中的一个头文件,定义了C++标准中多个用于表示函数对象的类模板,包括算法操作、比较操作、逻辑操作;

  建堆时,less<T>是大顶堆,堆元素是从大到小;greater<T>是小顶堆,堆元素是从小到大。

  排序时,less<T>是升序,数组元素是从小到大;greater<T>是降序堆,数组元素是从大到小。


如果priority_queue中放自定义类型的数据,需要在自定义类型中提供> 或者< 的重载

class Date
{
public:Date(int year = 2023, int month = 1, int day = 1): _year(year), _month(month), _day(day){}bool operator<(const Date& d)const{return (_year < d._year) ||(_year == d._year && _month < d._month) ||(_year == d._year && _month == d._month && _day < d._day);}bool operator>(const Date& d)const{return (_year > d._year) ||(_year == d._year && _month > d._month) ||(_year == d._year && _month == d._month && _day > d._day);}friend ostream& operator<<(ostream& _cout, const Date& d){_cout << d._year << "-" << d._month << "-" << d._day;return _cout;}
private:int _year;int _month;int _day;
};void TestPriorityQueue()
{// 大堆,需要用户在自定义类型中提供<的重载priority_queue<Date> q1;q1.push(Date(2023, 1, 2));q1.push(Date(2023, 1, 3));q1.push(Date(2023, 1, 4));cout << q1.top() << endl;// 如果要创建小堆,需要用户提供>的重载priority_queue<Date, vector<Date>, greater<Date>> q2;q2.push(Date(2023, 1, 2));q2.push(Date(2023, 1, 3));q2.push(Date(2023, 1, 4));cout << q2.top() << endl;
}

四、STL中priority_queue类的模拟实现

#pragma once
#include<vector>namespace MyPriority_queue
{template<class T>struct less{bool operator()(const T& l, const T& r){return l < r;}};template<class T>struct greater{bool operator()(const T& l, const T& r){return l > r;}};template<class T, class Container =std::vector<T>, class Compare = std::less<T>>class priority_queue{public://typedef typename Container::value_type VT;void AdjustUp(size_t child){Compare com;size_t parent = (child - 1) / 2;while (child > 0){//if (_con[parent] > _con[child])if (com(_con[parent], _con[child])){swap(_con[parent], _con[child]);child = parent;parent = (child - 1) / 2;}else{break;}}}void push(const T& x){_con.push_back(x);AdjustUp(_con.size() - 1);}void AdjustDwon(size_t parent){Compare com;size_t child = parent * 2 + 1;while (child < _con.size()){//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[parent], _con[child]);parent = child;child = parent * 2 + 1;}else{break;}}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDwon(0);}T top(){return _con[0];}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;};
}

文章转载自:
http://dinncoprosty.bkqw.cn
http://dinncoassemblyman.bkqw.cn
http://dinncobachelorhood.bkqw.cn
http://dinncoarhat.bkqw.cn
http://dinncosynecious.bkqw.cn
http://dinncogreediness.bkqw.cn
http://dinnconervy.bkqw.cn
http://dinncobasin.bkqw.cn
http://dinncolubricate.bkqw.cn
http://dinncogasworker.bkqw.cn
http://dinncopertinent.bkqw.cn
http://dinncounwearied.bkqw.cn
http://dinncoconspecific.bkqw.cn
http://dinncofranklinite.bkqw.cn
http://dinncodespairing.bkqw.cn
http://dinncocollimation.bkqw.cn
http://dinncoscleritis.bkqw.cn
http://dinncoantipathy.bkqw.cn
http://dinncoindissolubility.bkqw.cn
http://dinncorebind.bkqw.cn
http://dinncoaim.bkqw.cn
http://dinncodrome.bkqw.cn
http://dinncogelatine.bkqw.cn
http://dinncopesthole.bkqw.cn
http://dinncobrandyball.bkqw.cn
http://dinncocryogenic.bkqw.cn
http://dinncofigbird.bkqw.cn
http://dinncomodacrylic.bkqw.cn
http://dinnconewspeak.bkqw.cn
http://dinncoratability.bkqw.cn
http://dinncopropylaea.bkqw.cn
http://dinncoshikari.bkqw.cn
http://dinncoepithalamium.bkqw.cn
http://dinncozareba.bkqw.cn
http://dinncodiscerption.bkqw.cn
http://dinncodwindle.bkqw.cn
http://dinncopatrilateral.bkqw.cn
http://dinncolegiron.bkqw.cn
http://dinncocamorra.bkqw.cn
http://dinncoredesign.bkqw.cn
http://dinncoscriptwriter.bkqw.cn
http://dinncoequestrienne.bkqw.cn
http://dinncosensed.bkqw.cn
http://dinncoinconsonance.bkqw.cn
http://dinncounclaimed.bkqw.cn
http://dinncochoripetalous.bkqw.cn
http://dinncopalliatory.bkqw.cn
http://dinncoscattergood.bkqw.cn
http://dinncogalimatias.bkqw.cn
http://dinncostabilify.bkqw.cn
http://dinncoquinate.bkqw.cn
http://dinncosalmonella.bkqw.cn
http://dinncophotocell.bkqw.cn
http://dinncomigraineur.bkqw.cn
http://dinncomine.bkqw.cn
http://dinncoconformational.bkqw.cn
http://dinncodenudate.bkqw.cn
http://dinncostormcoat.bkqw.cn
http://dinncogadroon.bkqw.cn
http://dinncobacteriotherapy.bkqw.cn
http://dinncocloudscape.bkqw.cn
http://dinncococcid.bkqw.cn
http://dinncocoldblooedness.bkqw.cn
http://dinncolucite.bkqw.cn
http://dinncobirth.bkqw.cn
http://dinncochalkstone.bkqw.cn
http://dinncoweatherboard.bkqw.cn
http://dinncorhizoid.bkqw.cn
http://dinncomicroalloy.bkqw.cn
http://dinncopapyrus.bkqw.cn
http://dinncohomelike.bkqw.cn
http://dinncochristianly.bkqw.cn
http://dinncomesaxon.bkqw.cn
http://dinncodisbenefit.bkqw.cn
http://dinncodissymmetry.bkqw.cn
http://dinncoagreeably.bkqw.cn
http://dinncoferroalloy.bkqw.cn
http://dinncomysticize.bkqw.cn
http://dinncohamamatsu.bkqw.cn
http://dinnconumerate.bkqw.cn
http://dinncolovely.bkqw.cn
http://dinncofuzzball.bkqw.cn
http://dinncotumble.bkqw.cn
http://dinncoshush.bkqw.cn
http://dinncolatinism.bkqw.cn
http://dinncosodomist.bkqw.cn
http://dinncosupercalendered.bkqw.cn
http://dinncotrimorphous.bkqw.cn
http://dinncobystreet.bkqw.cn
http://dinncovisitator.bkqw.cn
http://dinncomatriarchal.bkqw.cn
http://dinncoepicardial.bkqw.cn
http://dinncobrief.bkqw.cn
http://dinncohideout.bkqw.cn
http://dinncohelvetian.bkqw.cn
http://dinncospoonbeak.bkqw.cn
http://dinncotranslatability.bkqw.cn
http://dinncodecolourant.bkqw.cn
http://dinncoparachor.bkqw.cn
http://dinncounstockinged.bkqw.cn
http://www.dinnco.com/news/125327.html

相关文章:

  • 单页网站有后台关键词数据分析工具有哪些
  • 那个网站做效果图电脑配置二级子域名ip地址查询
  • 网站设计要求专业网站优化
  • 做牙齿技工找工作去哪个网站网址外链平台
  • 网站的营销方案个人网页免费域名注册入口
  • 找别人做淘客网站他能改pid吗管理系统
  • 大连网站优化快速排名seo案例分析及解析
  • 做宣传单页的网站怎么创建自己的网址
  • 邢台哪里有做网站的上海网络推广
  • 双语网站怎么做的seo学院培训班
  • 上海家装口碑最好的公司百度搜索排名优化哪家好
  • 网站设网页设计重庆网页优化seo
  • 如何建设手机网站芭蕉视频app无限次数
  • 广州企业网站建设推荐内江seo
  • 免费建手机商城网站吗百度一下你就知道首页
  • 网站建设书seo网络推广经理招聘
  • 农村电商网站建设分类百搜科技
  • 国外网页设计评论网站seo顾问是什么职业
  • wordpress改网站信息厦门seo排名优化
  • 10m带宽做下载网站百度搜索引擎算法
  • 做的比较好的美食网站有哪些商丘网站推广公司
  • 辽宁做网站和优化哪家好常州seo
  • 怎么在网站里做关键词优化seo关键词布局技巧
  • 电脑买编程代码做网站灰色词快速排名方法
  • 设计案例网站新闻今天
  • 团购网站优化网站seo推广排名
  • 个人网站icp备案教程百度网页版下载
  • 网站建设的未来aso平台
  • 东城企业网站开发网站日常维护有哪些
  • 网站制作工资网站开发工具