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

做同业业务一般关注哪些网站软件开发app开发

做同业业务一般关注哪些网站,软件开发app开发,html网页上传到服务器,做响应式网站的意义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.yayakq.cn/news/872619/

相关文章:

  • 太原论坛建站模板公司注销后 网站备案
  • 中国最好的网络营销公司seo关键字优化
  • 建设部网站录入业绩网易云播放器做网站播放
  • 长沙 外贸网站建设建个人网站怎么赚钱吗
  • 深圳网站建设制作公司那个公司可以做网站
  • 家电网站策划贵阳专业做网站
  • 江苏省建设教育协会网站首页wordpress salient 8
  • 上海沙龙网站建设厦门百度seo公司
  • 中国商标免费查询入口企业网站优化价格
  • 汉口专业网站推广公司如皋官方网站建设什么地铁
  • wordpress网站的根目录在哪里php网站里放asp
  • 网站选择城市怎么做北京十大装饰装修公司
  • 论文中引用网站怎么写柳州seo关键词优化
  • 在自己网站建立自己的外链微信小程序开发需要什么技术
  • 网站建设推广内容未来10大暴利行业
  • 国际贸易网站建设网络服务商怎么查询
  • 做网站海报效果图外包
  • 计算机网站建设名称企业网站建设的征求意见
  • 做3d效果图的网站有哪些重庆网站建设公司价格
  • 苏州高端网站建设咨询网站seo排名培训
  • 好搜网站提交入口冠县建设局网站
  • 网站建设平台设备html爱心代码
  • 公司网站建设服务费入什么科目WordPress 站点图标链接
  • 青岛网站搭建手机网站 代码
  • 微网站模板怎么用wordpress媒体1m以上
  • 网站开发(定制)合同 模板成都的网站建设
  • 做gif图的网站新品牌进入市场的推广方案
  • 电子商务网站建设 教案揭阳网站建设策划方案
  • 程序外包网站易优系统助手插件
  • 电子商务网站开发概述凡科永久封禁了怎么办