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

网站建设服务哪家有企业广告平面设计多少钱

网站建设服务哪家有,企业广告平面设计多少钱,软件开发公司规章制度,宿州市建设工程质量监督站网站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/132081/

相关文章:

  • wordpress 基础建站wordpress 添加媒体
  • 海丰县网站设计悬浮网站底部代码
  • 网络公司网站首页图片企业信用信息公示系统福建
  • 校园网站建设素材手机做网站教程
  • 做网站如何引用头部免费做一个自己app
  • wordpress文章名称seo营销优化
  • 婚纱网站设计首页江东怎样优化seo
  • 建设股份公司网站门户网站的营销方式
  • 外贸网站建设 惠州wordpress小技巧
  • 外国做问卷可以赚钱的网站安徽省省博物馆网站建设
  • 浦北县住房和城乡建设局网站河池市住房与城市建设部网站
  • 网站搭建代码海外网络怎么搭建
  • 网站公司谁家好企业网站设计源代码
  • 如何进行网络推广和宣传台州网站建设seo
  • 毕业设计旅游网网站设计高端网站设计哪家好
  • 无锡新吴区建设局网站海外网络是什么意思
  • 福建建设厅网站沧州关键词排名按天收费
  • 企业级网站开发网站栏目相关内容在哪采集啊
  • 窗帘网站建设策划书道客巴巴如何做网站销售
  • 广州哪里做网站北京定制网页
  • 企业局域网做网站屏蔽手机如何管理wordpress
  • 怎么维护好网站企业管理培训
  • 自己的网站怎么做模板临沂企业网站开发官网
  • 微网站建设找哪家模板网点地址信息获取错误是什么意思
  • 电商网站建设效果傻瓜自助建站软件
  • 网站开发过程可分为男女做性哪个的小视频网站
  • 网站开发阶段流程西安网站设计公司哪家好
  • 闵行建设网站北京搜索优化排名公司
  • 开发公司起名长沙seo推广营销
  • 唐山网站建设400多少钱asp.net mvc5网站开发