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

做请柬网站甲马营seo网站优化的

做请柬网站,甲马营seo网站优化的,可以免费开发app的软件,美国服务器购买网站C普通队列 算法竞赛中一般用静态数组来模拟队列,或者使用STL queue。使用C的STL queue时,由于不用自己管理队列,因此代码很简洁。队列的部分操作如下。 C优先队列 很多算法需要用到一种特殊的队列:优先队列。它的特点是最优数据…

C++普通队列

算法竞赛中一般用静态数组来模拟队列,或者使用STL queue。使用C++的STL queue时,由于不用自己管理队列,因此代码很简洁。队列的部分操作如下。

C++优先队列

很多算法需要用到一种特殊的队列:优先队列。它的特点是最优数据始终位于队首。

优先队列的效率很高:新数据插入队列生成新的最优队首元素,计算复杂度是O(logn);弹出最优的队首元素后在队列中计算出新的最优队首元素,计算复杂度也是O(logn)。

C++ STL优先队列priority_queue用堆来实现,堆是用二叉树实现的一种数据结构。

定义:priority_queue<Type, Container, Functional>。

Type是数据类型,Container是容器类型(用数组实现的容器,默认是vector),Functional是比较的方式。当需要使用自定义的数据类型时才需要传入这3个参数,而使用基本数据类型时,只需要传入数据类型,默认是大顶堆,堆顶是最大值。

C++链表

链表的编程实现有动态链表、静态链表、STL list等多种方法。在算法竞赛中,为了加快编程速度,一般使用静态链表或STL list。

STL list:

如果读者嫌麻烦,则可以使用C++的STL list,这样就不用自己管理链表。非常方便,本文也是直接讲解STL list,加快在算法竞赛中的编程速度。

STL list是双向链表,通过指针访问结点数据,它的内存空间可以是不连续的,使用它能高效地删除和插入结点。就此意义而言,list是真正的链表。

list中的构造函数:

list() 声明一个空列表;

list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的

list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的

list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素

常用函数: 

begin()和end():通过调用list容器的成员函数begin()得到一个指向容器起始位置的iterator,可以调用list容器的 end() 函数来得到list末端下一位置,相当于:int a[n]中的第n+1个位置a[n],实际上是不存在的,不能访问,经常作为循环结束判断结束条件使用。

push_back() 和push_front():使用list的成员函数push_back和push_front插入一个元素到list中。其中push_back()从list的末端插入,而 push_front()实现的从list的头部插入。

empty():利用empty() 判断list是否为空。

resize(): 如果调用resize(n)将list的长度改为只容纳n个元素,超出的元素将被删除,如果需要扩展那么调用默认构造函数T()将元素加到list末端。如果调用resize(n,val),则扩展元素要调用构造函数T(val)函数进行元素构造,其余部分相同。

clear(): 清空list中的所有元素。

front()和back(): 通过front()可以获得list容器中的头部元素,通过back()可以获得list容器的最后一个元素。但是有一点要注意,就是list中元素是空的时候,这时候调用front()和back()会发生什么呢?实际上会发生不能正常读取数据的情况,但是这并不报错,那我们编程序时就要注意了,个人觉得在使用之前最好先调用empty()函数判断list是否为空。

pop_back和pop_front():通过删除最后一个元素,通过pop_front()删除第一个元素;序列必须不为空,如果当list为空的时候调用pop_back()和pop_front()会使程序崩掉。

swap():交换两个链表(两个重载),一个是l1.swap(l2); 另外一个是swap(l1,l2),都可能完成连个链表的交换。

reverse():通过reverse()完成list的逆置。

merge():合并两个链表并使之默认升序(也可改),l1.merge(l2,greater<int>()); 调用结束后l2变为空,l1中元素包含原来l1 和 l2中的元素,并且排好序,升序。其实默认是升序,greater<int>()可以省略,另外greater<int>()是可以变的,也可以不按升序排列。

insert():在指定位置插入一个或多个元素(三个重载):

l1.insert(l1.begin(),100); 在l1的开始位置插入100。

l1.insert(l1.begin(),2,200); 在l1的开始位置插入2个100。

l1.insert(l1.begin(),l2.begin(),l2.end());在l1的开始位置插入l2的从开始到结束的所有位置的元素。

erase():删除一个元素或一个区域的元素(两个重载)

l1.erase(l1.begin()); 将l1的第一个元素删除。

l1.erase(l1.begin(),l1.end()); 将l1的从begin()到end()之间的元素删除。

http://www.khdw.cn/news/3116.html

相关文章:

  • 养殖企业网站关键词统计工具有哪些
  • 网站图片太多怎么优化免费建自己的网址
  • 佛山建网站定制广东企业网站seo哪里好
  • 网站页头图片网站免费推广平台
  • 做网站阿里云记录值怎么填好用的百度网盘搜索引擎
  • 网站建设 三牛微信小程序怎么做
  • 2017年网站开发用什么语言谷歌在线浏览器入口
  • 烟台制作网站有哪些百度 seo排名查询
  • 用什么网站做海报营销策略手段有哪些
  • 中国制造最新好消息seo优化评论
  • 网站建设服务领域网站的优化与推广分析
  • 做个网站需要多久网站设计费用多少福州短视频seo公司
  • 山东省住房与城乡建设网站同城推广
  • 的建站公司想建立自己的网站怎么建立
  • 外国做ppt的网站东莞百度快速排名
  • 安徽省建设厅网站个人怎么注册seo优化工作内容
  • 网站开发是做什么网站检测工具
  • 六盘水住房和城乡建设部网站seo点击排名软件哪里好
  • 怎么做拍卖网站wifi优化大师下载
  • 好看网站手机版福州网站快速排名提升
  • 网站建设与推广销售户话术西安网站建设平台
  • 资料代做网站竞价推广开户公司
  • 网站运营方案 网站建设百度搜索引擎优化怎么做
  • 提供虚拟主机服务的网站seo优化一般包括哪些内容
  • 视频聚合网站怎么做不侵权宁波做seo推广企业
  • 设计师网站登录重庆seo排名扣费
  • 橙子建站 推广百度推广入口
  • 东莞网站设计建设网络营销概述ppt
  • 网络工程二本最好的出路网站seo视频
  • 成都旅游必去景点有哪些宁波seo排名方案优化公司