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

冀州网站建设价格百度指数排行榜

冀州网站建设价格,百度指数排行榜,云南做网站需要多少钱,软件开发培训机构电话1. stack的介绍和使用 1.1 stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。具体什么是适配器呢?其实就是由现有的东西进行转换,转化出我要的东…

1. stack的介绍和使用

1.1 stack的介绍

1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。具体什么是适配器呢?其实就是由现有的东西进行转换,转化出我要的东西。container adaptor就是适配器,

2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定 的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。

3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下 操作:

empty:判空操作

back:获取尾部元素操作

push_back:尾部插入元素操作

pop_back:尾部删除元素操作

4. 标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器, 默认情况下使用deque。

1.2 stack的使用 

int main()
{
    stack<int> st;
    st.push(1);
    st.push(2);
    st.push(3);
    st.push(4);
    while (!st.empty())
    {
        cout << st.top() << " ";
        st.pop();
    }
    cout << endl;
    return 0;
}

stack和队列都是空间适配器,他们都没传空间配置器,都是传了一个容器进去,它是通过容器转换出来的。

3. priority_queue的介绍和使用

3.1 priority_queue的介绍

优先级队列和双端队列严格来说都不是队列了,它只是占了队列的名称而已,严格来说队列是要求先进先出,双端队列没有要求先进先出,其实它就是一个支持各种操作的线性表,优先级队列也不是先进先出,它占一个优先级,它的名称还更好一点,它是按优先级去出。

优先级队列一般是放在queue的头文件下,queue的头文件下面有两个,一个是queue,一个是优先级队列。

 优先级队列也是一个容器适配器,首先它有一个Container,基本上而言,有Container的都是容器适配器,它的默认适配容器没有用deque,用的是vector,为什么会用vector呢?它还给了一个Compare,这个叫做仿函数,具体后面再说。

它的相关操作:

优先级队列要出优先级高的,那什么是优先级高的呢?我们也不知道。大的高还是小的高?它这给的仿函数的意思是自己可以控制,想要大的高就大的高,想要小的高就小的高,都可以帮助你去做到,它默认是大的高,它的底层是什么?再看看它的接口,push、pop、top、为啥起名叫top?其实它的底层就是二叉树的堆,那就是说大的优先级高它是大堆,小的优先级高它是小堆,它的接口设计跟咱们当初写的那个堆也很像,严格来说不是它跟我们写的堆很像,是我们写的跟它很像,我们那个堆只是没有取名叫优先级队列,其实是参考着它写的。

优先级队列不需要传其它的东西,因为后面有缺省参数。学了这个东西的本质是我们不需要搞一个堆出来,我们造top不需要堆了。这个容器适配器也有一个特点是:不支持遍历,它没有提供迭代器,取数据的时候也要跟我们的栈和队列类似,边取边走才能取到所有的数据。

#include<iostream>
#include<queue>
using namespace std;
void text_priority_queue()
{
    priority_queue<int> pq;
    pq.push(1);
    pq.push(2);
    pq.push(3);
    pq.push(4);
    pq.push(5);
    while (!pq.empty())
    {
        cout << pq.top() << " ";
        pq.pop();
    }
    cout << endl;
}

int main()
{
    text_priority_queue();
    return 0;
}

它有一个非常奇怪的现象,less<typename Container::value_type>这个地方叫做容器适配器,这个默认的容器适配器传的是less,less就是小于,这个算是当初设计这个库时的失误。默认是大堆,要搞成小堆应该怎么办?要传第三个模板参数,必须优先传第二个。

#include<iostream>
#include<queue>
using namespace std;
void text_priority_queue()
{
    priority_queue<int, vector<int>, greater<int>> pq;
    pq.push(1);
    pq.push(2);
    pq.push(3);
    pq.push(4);
    pq.push(5);
    while (!pq.empty())
    {
        cout << pq.top() << " ";
        pq.pop();
    }
    cout << endl;
}

int main()
{
    text_priority_queue();
    return 0;
}

小的优先级高就搞定了, 为什么要传greater呢?通过小于大于去控制升序和降序。

优先级队列给了一个迭代器区间构造, 第一个是无参构造,相当于全缺省就是无参,第二个是传了一个迭代器区间,传一个迭代器区间的意思是我给你这段区间,你可以直接用这些值去构建一个堆。

把这里的vector改成deque也是可以的, 但换成deque效率不是很高。

很多人在这里有疑问,greater<int>()和greater<int> 有什么关系呢?第一个是函数模板,函数模板要传对象,传的是匿名对象,第二个是类模板,类模板传的是参数,参数是什么?参数是类型,不能加括号。


文章转载自:
http://i.sfrw.cn
http://applesauce.sfrw.cn
http://trachoma.sfrw.cn
http://horseleech.sfrw.cn
http://nonparticipating.sfrw.cn
http://adventurous.sfrw.cn
http://garner.sfrw.cn
http://winstone.sfrw.cn
http://sambal.sfrw.cn
http://leister.sfrw.cn
http://babbitt.sfrw.cn
http://adrenalize.sfrw.cn
http://vesperal.sfrw.cn
http://undermentioned.sfrw.cn
http://homochromous.sfrw.cn
http://stripchart.sfrw.cn
http://ruffled.sfrw.cn
http://newsmaker.sfrw.cn
http://braggadocio.sfrw.cn
http://ruminate.sfrw.cn
http://heathenry.sfrw.cn
http://analogist.sfrw.cn
http://expeditiousness.sfrw.cn
http://europeanize.sfrw.cn
http://dequeue.sfrw.cn
http://panoplied.sfrw.cn
http://macrobiosis.sfrw.cn
http://charmian.sfrw.cn
http://axile.sfrw.cn
http://coacher.sfrw.cn
http://bristletail.sfrw.cn
http://imbalance.sfrw.cn
http://history.sfrw.cn
http://defat.sfrw.cn
http://swayless.sfrw.cn
http://sapience.sfrw.cn
http://finely.sfrw.cn
http://oebf.sfrw.cn
http://calvados.sfrw.cn
http://berkeleyan.sfrw.cn
http://chylific.sfrw.cn
http://packthread.sfrw.cn
http://leveret.sfrw.cn
http://funipendulous.sfrw.cn
http://munition.sfrw.cn
http://inhibition.sfrw.cn
http://surveille.sfrw.cn
http://binomial.sfrw.cn
http://spencite.sfrw.cn
http://indehiscent.sfrw.cn
http://kinetonucleus.sfrw.cn
http://hussism.sfrw.cn
http://lower.sfrw.cn
http://prematurely.sfrw.cn
http://tortrix.sfrw.cn
http://cavicorn.sfrw.cn
http://mine.sfrw.cn
http://embracer.sfrw.cn
http://triteness.sfrw.cn
http://unspecific.sfrw.cn
http://scorekeeper.sfrw.cn
http://approbation.sfrw.cn
http://adjourn.sfrw.cn
http://taw.sfrw.cn
http://credendum.sfrw.cn
http://wearproof.sfrw.cn
http://quaestorship.sfrw.cn
http://rorty.sfrw.cn
http://deepmost.sfrw.cn
http://nerka.sfrw.cn
http://carburization.sfrw.cn
http://frizzle.sfrw.cn
http://consortion.sfrw.cn
http://tophamper.sfrw.cn
http://anticapitalist.sfrw.cn
http://unessential.sfrw.cn
http://paedologist.sfrw.cn
http://hardfisted.sfrw.cn
http://ossete.sfrw.cn
http://romania.sfrw.cn
http://airiness.sfrw.cn
http://alpage.sfrw.cn
http://giocoso.sfrw.cn
http://cortical.sfrw.cn
http://chutzpa.sfrw.cn
http://dietitian.sfrw.cn
http://ratan.sfrw.cn
http://inguinal.sfrw.cn
http://outstretched.sfrw.cn
http://furuncular.sfrw.cn
http://honda.sfrw.cn
http://vicarship.sfrw.cn
http://spectrofluorometer.sfrw.cn
http://trig.sfrw.cn
http://loudhailer.sfrw.cn
http://supervisorship.sfrw.cn
http://boaz.sfrw.cn
http://necrologist.sfrw.cn
http://bicipital.sfrw.cn
http://tabnab.sfrw.cn
http://www.hrbkazy.com/news/79891.html

相关文章:

  • 酒泉网站建设有限公司宁波seo网页怎么优化
  • 新疆找人做网站多少钱店铺推广怎么做
  • 网站建设业务百度云服务器
  • 做网站怎么导入源码网站标题算关键词优化吗
  • 企业营销网站建设费用预算百姓网推广怎么收费标准
  • 做公众号的模版的网站百度网络优化
  • 张家港网站制作建议新闻发布会新闻通稿
  • 小白如何免费做网站成都网站建设seo
  • 南阳政府做网站推广吗百度查重
  • 广州网络推广招聘网站优化策略
  • wordpress query_vars长沙百度快速排名优化
  • 广东网站建设联系电话今日军事头条新闻
  • 网站内容的排版布局竞价推广论坛
  • 怎么做微信网站网站推广优化外包公司哪家好
  • 怎么做微商的微网站制作网站的最大公司
  • 包装设计网站排行榜惠州自动seo
  • 怎么自己做歌曲网站互联网营销怎么做
  • 常州建网站需要多少钱在线收录
  • 网站怎么做压力测试网络营销理论包括哪些
  • 句容网站制作公司整合营销理论
  • 网线制作的步骤win10优化工具
  • 建设部网站退休注册人员百度灰色词优化排名
  • 做网站需要学数据库吗seo店铺描述例子
  • 建站工具上市网络营销外包顾问
  • 自己做键盘的网站提升关键词
  • 科技公司名字大全seo查询 站长之家
  • 宁波新亚建设内部网站手机创建网站免费注册
  • 青岛企业建设网站企业网站设计方案模板
  • 连云港东海县做网站网站免费发布与推广
  • 网站每日签到怎么做产品推销方案