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

文案交流网站建筑建设行业网站

文案交流网站,建筑建设行业网站,沈阳网站建设培训学校,网站建设轮播图STL容器 1.序列式容器 #xff1a; vector#xff0c;deque#xff0c;list。 每个元素都有固定的位置#xff08;取决于插入的时机和位置#xff0c;与元素值无关#xff09;。 vector 特点#xff1a; 将一个元素置于一个动态数组中加以管理#xff0c;可以随机存取元…STL容器   1.序列式容器  vectordequelist。 每个元素都有固定的位置取决于插入的时机和位置与元素值无关。   vector 特点 将一个元素置于一个动态数组中加以管理可以随机存取元素。在数组尾部添加或删除元素非常快速但是在中部或头部插入或删除元素比较耗时。 deque “double-ended queue” 双端队列可以随机存取。数组尾部或头部添加或删除元素非常快速但在中部插入或删除元素比较费时。实际上deque 是对vector 和list 优缺点的结合它是处于两者之间的一种容器。 list 双向链表不提供随机存取按顺序存储在任何位置插入或删除动作都非常迅速。只能顺序访问从前向后或者从后向前。与前面两种容器类有一个明显的区别就是它不支持随机访问。要访问表中某个下标处的项需要从表头或表尾处接近该下标的一端开始循环。而且缺少下标预算符operator[]。 1 vector 向量 相当于一个数组     在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时首先分配一个非常大的内存空间预备进行存储即capacituy函数返回的大小当超过此分配的空间时再整体重新放分配一块内存存储这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存储。    优点(1) 不指定一块内存大小的数组的连续存储即可以像数组一样操作但可以对此数组                进行动态操作。通常体现在push_back() pop_back()                (2) 随机访问方便即支持[ ]操作符和vector.at()                (3) 节省空间。    缺点(1) 在内部进行插入删除操作效率低。                (2) 只能在vector的最后进行push和pop不能在vector的头进行push和pop。                 (3) 当动态添加的数据超过vector默认分配的大小时要进行整体的重新分配、拷贝与释放 。 操作 1插入和删除操作push_backpop_back只能在数组尾部进行删除特定位置元素erase 2返回固定位置的元素atint n,支持【】操作头和尾元素frontback 3返回头或尾的指针用beginend 4其他size,swap,empty; 2 list     双向链表     每一个结点都包括一个信息快Info、一个前驱指针Pre、一个后驱指针Post。可以不分配必须的内存大小方便的进行添加和删除操作。使用的是非连续的内存空间进行存储。    优点(1) 不使用连续内存完成动态操作。                (2) 在内部方便的进行插入和删除操作                (3) 可在两端进行push、pop    缺点(1) 不能进行内部的随机访问即不支持[ ]操作符和vector.at()                (2) 相对于verctor占用内存多   操作         函数名    说明 assign()    给list赋值back()   返回最后一个元素begin()    返回指向第一个元素的迭代器 clear()  empty()  erase() 删除一个元素 remove()从list删除元素 remove_if()     按指定条件删除元素 front()     返回第一个元素  end()       返回末尾的迭代器 insert()     插入一个元素到list中pop_back()       删除最后一个元素 pop_front()     删除第一个元素push_back()       在list的末尾添加一个元素 push_front()    在list的头部添加一个元素 reverse()  把list的元素倒转 size()       返回list中的元素个数 sort()       给list排序 splice()     合并两个list,源list的内容部分或全部元素删除拼插入到目的list swap()     交换两个list unique()   删除list中重复的元素 3 deque    双端队列 double-end queue    deque是在功能上合并了vector和list。    优点(1) 随机访问方便即支持[ ]操作符和vector.at()                (2) 在内部方便的进行插入和删除操作                (3) 可在两端进行push、pop    缺点(1) 占用内存多   操作 pop_back() 删除尾部的元素pop_front() 删除头部的元素 push_back() 在尾部加入一个元素push_front() 在头部加入一个元素 其他vector有的他也有。与vector区别就是他多一个头部插入和删除的功能     使用区别      1 如果你需要高效的随即存取而不在乎插入和删除的效率使用vector       2 如果你需要大量的插入和删除而不关心随即存取则应使用list       3 如果你需要随即存取而且关心两端数据的插入和删除则应使用deque     2.关联式容器 setmultiset, map, multimap 元素位置取决于特定的排序准则与插入顺序无关。              关联容器和顺序容器的本质区别  关联容器是通过键存取和读取元素、顺序容器通过元素在容器中的位置顺序存储和访问元素。因此关联容器不提供front、push_front、pop_front、back、push_back以及pop_back此外对于关联容器不能通过容器大小来定义因为这样的话将无法知道键所对应的值什么。   都支持find、count、insert、erase操作。   Sets/Multisets 内部的元素依据其值自动排序Set内的相同数值的元素只能出现一次Multisets内可包含多个数值相同的元素内部由二叉树实现实际上基于红黑树(RB-tree实现便于查找   操作           Maps/Multimaps Map的元素是成对的键值/实值内部的元素依据其值自动排序Map内的相同数值的元素只能出现一次Multimaps内可包含多个数值相同的元素内部由二叉树实现实际上基于红黑树(RB-tree实现便于查找 map就是一个容器里面装的就是若干个pair。每个pair的第一个元素称为键注意键的类型必须支持小于()操作第二个元素称为值。对于普通的map每个键都对应一个值。这样的看起来键类似于数组的下标而值类似于数组的值。       STL容器适配器 栈stack 、队列queue 和优先级priority_queue 。   适配器是容器的接口它本身不能直接保存元素它保存元素的机制是调用 另一种顺序容器去实现即可以把适配器看作“它保存一个容器这个容器再保 存所有元素”。(不能由迭代器访问元素或者数组下表访问元素)*STL 中提供的三种适配器可以由某一种顺序容器去实现。默认下stack 和queue 基于deque 容器实现priority_queue 则基于vector 容器实现。由于适配器的特点一个适配器不是可以由任一个顺序容器都可以实现的。栈stack 的特点是后进先出所以它关联的基本容器可以是任意一种顺序容器因为这些容器类型结构都可以提供栈的操作有求它们都提供了push_back 、pop_back 和back 操作。队列queue 的特点是先进先出适配器要求其关联的基础容器必须提供pop_front 操作因此其不能建立在vector 容器上。   //插入和删除push,pop注意区分不同数据结构此操作区别无insert操作。 //均有清空及返回数据个数的操作无erase操作 //返回顶或头、尾,用topfrontback》》不能由迭代器访问元素或者数组下标访问元素   1 Stacks堆栈 C Stack堆栈是一个容器类的改编为程序员提供了堆栈的全部功能— —也就是说实现了一个先进后出FILO的数据结构。 1.empty() 堆栈为空则返回真 2.pop() 移除栈顶元素 3.push() 在栈顶增加元素 4.size() 返回栈中元素数目 5.top() 返回栈顶元素2 C Queues(队列) C队列是一种容器适配器它给予程序员一种先进先出(FIFO)的数据结构。 1.back() 返回一个引用指向最后一个元素 2.empty() 如果队列空则返回真 3.front() 返回第一个元素 4.pop() 删除第一个元素 5.push() 在末尾加入一个元素 6.size() 返回队列中元素的个数3 Priority Queues(优先队列) C优先队列类似队列但是在这个数据结构中的元素按照一定的断言排列有 序。http://www.cnblogs.com/heqinghui/archive/2013/07/30/3225407.html 1.empty() 如果优先队列为空则返回真 2.pop() 删除第一个元素 3.push() 加入一个元素 4.size() 返回优先队列中拥有的元素的个数 5.top() 返回优先队列中有最高优先级的元素   #includequeue  #includevector  //定义结构使用运算符重载,自定义优先级1  struct cmp1{      bool operator ()(int a,int b){          return ab;//最小值优先      }  };  struct cmp2{      bool operator ()(int a,int b){          return ab;//最大值优先      }  };  //定义结构使用运算符重载,自定义优先级2  struct number1{      int x;      bool operator (const number1 a) const {          return xa.x;//最小值优先      }   };  struct number2{      int x;      bool operator (const number2 a) const {          return xa.x;//最大值优先      }  };  priority_queueintque;//采用默认优先级构造队列         priority_queueint,vectorint,cmp1que1;//最小值优先      priority_queueint,vectorint,cmp2que2;//最大值优先      priority_queueint,vectorint,greaterint que3;//注意“”会被认为错误                                                        //这是右移运算符所以这里用空格号隔开      priority_queueint,vectorint,lessint que4;最大值优先   转载于:https://www.cnblogs.com/biggan/p/STL.html
http://www.huolong8.cn/news/345261/

相关文章:

  • 高中生做网站网页如何做网页设计
  • 2015网站建设广东省网站免备案表
  • muse cc 做网站怎么再贴吧给自己的网站做宣传
  • 网站建设与维护工作申请号的网站
  • 贵阳微网站建设公司哪家好百度推广怎么弄
  • 做摄影和后期的兼职网站猎头公司是啥意思
  • 郑州网站制作专业乐云seo著名营销成功案例
  • 菏泽网站建设效果wordpress怎么创建目录页面
  • 用虚拟机做网站服务器大众点评怎么做团购网站
  • 网站的劣势做优惠券网站赚钱吗
  • 农场会员营销网站建设wordpress 等级
  • 文明网站建设培训体会网站嵌入js
  • 好的网站建设商家wordpress theme 插件
  • 太原营销型网站建设河北建设工程招标协会网站
  • 网乐科技网站建设成都网络营销搜索推广优势
  • 青浦建设机械网站游戏网站开发毕业设计
  • 苏州华亭建设工程有限公司网站wordpress简约企业商城
  • 网站文章怎么做分享qq建站工具有什么用
  • 建设银行网站改手机号易居房产cms
  • 网站建设需要怎样的经营范围国内用react做的网站
  • 外贸网站推广计划江苏省宿迁市建设局网站首页
  • 如何网站开发语言公众号接入小程序
  • 烟台H5网站设计公司网站域名备案系统
  • 浙江省兰溪建设局网站做网站汉中
  • 江苏营销型网站建设公司网页升级紧急通知域名
  • 许昌做网站公司专业做网站哪家好一个好的网站应该具有什么
  • 做外贸网站需要什么wordpress添加媒体无反应
  • 电脑建设银行怎样设置网站查询密码中山古镇做网站的公司
  • 武隆网站建设哪家好企业网站方案设计
  • 聚牛建设网站网站添加可信任站点怎么做