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

网站建设优化项目有关网站建设的图片

网站建设优化项目,有关网站建设的图片,wordpress分类别名,网站建设就问山东聚搜网络fSTL标准库之list list类的简介常用的list类的接口构造迭代器容量访问修改 list和vector的区别 list类的简介 list是一种序列式容器#xff0c;可以在任意位置插入和删除元素#xff0c;并且其时间复杂度为O(1)#xff0c;在底层#xff0c;list是双向链表结构#xff0c;… STL标准库之list list类的简介常用的list类的接口构造迭代器容量访问修改 list和vector的区别 list类的简介 list是一种序列式容器可以在任意位置插入和删除元素并且其时间复杂度为O(1)在底层list是双向链表结构每个节点通过指针指向下一个节点因此最大的缺陷是不支持随机访问必须从已知位置开始迭代到该位置同时节点除了存储val值之外还要存储指针因此需要一些额外的空间。 由于双向带头循环链表的存在使得list在找尾时无需从头开始遍历这样就有效降低了查找时候的时间复杂度。头节点不存储数据只是记录了当前list的第一个节点的地址和最后一个节点的地址 常用的list类的接口 构造 函数名称功能list(size_type n, const value_type val value_type())n个值为value的元素list()空列表list(const list x)拷贝构造list(InputIterator first, InputIterator last)用first和last进行区间构造 对应写法 listint l(10, 5); listint l2(); listint l3(l2);int arr[] {1,2,3,4,5}; int n sizeof(arr)/sizeof(arr[0]); listint l4(arr, arrn);迭代器 函数名称功能begin()end()返回第一个元素的迭代器和最后一个元素的迭代器rbegin()rend()返回第一个元素的reverse_iterator,即end位置返回最后一个元素下一个位置的reverse_iterator,即begin位置 从迭代器的在list中的位置可以看到begin()实际上在第一个有效节点的位置而end()在头节点的位置那么为何要这样设置呢 实际上这样设置迭代器后就可以很快速的找到当前链表的头和尾了当需要找尾时使用end()指向节点中的prev就可以快速找到如果需要判断当前列表是否为空呢实际上直接判断end()指向的值和begin()指向的值是否相等如果相等意味着head节点就是当前列表中唯一的节点那么就说明当前列表为空。 判读是否为空就可以直接判断end和begin是否相等因为当只有一个头节点的时候prev和next指向的都是头节点。 容量 函数名称功能empty判断是否为空列表size计算当前列表中有多少个有效节点 访问 函数名称功能front返回第一个节点中值的引用back返回最后一个节点中值的引用 如果需要进行遍历由于list特性是不支持直接使用[]进行随机访问的需要我们通过头节点逐个迭代。 修改 函数名称功能push_front头插一个元素pop_front头删一个元素push_back尾插一个元素pop_back尾删一个元素insertpos位置插入元素erasepos位置删除元素swap交换两个list中的元素clear清空list中的元素 请注意针对迭代器失效的问题在vector中我们说任何可能会导致扩容的操作都可能会导致迭代器失效同时删除也会导致删除当前位置以及后续所有的迭代器失效。但是在list中由于使用链式存储方式因此不存在扩容的情况因此扩容不会导致迭代器失效而删除操作会导致当前位置的迭代器失效并不会影响后续的迭代器。 list和vector的区别 由于vector和list两个容器的底层结构不同导致其特性以及应用场景不同。 vectorlist底层结构动态的顺序表一段连续空间带头节点的双向循环链表随机访问支持随机访问访问效率O(1)不支持访问效率O(n)插入和删除在任意位置插入和删除的效率低需要整个搬移元素时间复杂度为O(n)插入时可能要增容效率低支持在任意位置的插入和删除时间复杂度都为O(1)并且无需扩容拷贝元素效率高空间利用率底层为连续空间不易造成内存碎片空间利用率高缓存利用率高底层动态开辟节点小节点容易造成内存碎片空间利用率低缓存利用率低迭代器例如需要进行迭代器为原生态的指针指针也就是向后偏移一个元素需要对指针进行封装因为迭代器本身是不能通过访问到下一个元素的元素之间使用指针相连迭代器失效插入元素时可能会导致扩容这样就会使得所有的迭代器都失效因此需要对迭代器重新赋值删除元素时也需要重新赋值否则也会失效插入元素不会扩容只有删除元素会导致当前位置迭代器失效其他位置迭代器没有影响使用场景需要高效存储支持随机访问的场景不关心插入删除的效率涉及到大量的插入和删除不关心随机访问
http://www.hkea.cn/news/14476258/

相关文章:

  • 网站专题制作流程一站式快速网站排名多少钱
  • 网站新闻页面设计微站
  • 内江企业网站建设公司seo综合查询站长工具
  • 烟台免费网站建设carousel wordpress
  • 网站建设状况手机的网站建设目标是什么意思
  • 银行门户网站开发平度建设局网站
  • 网站制作中搜索栏怎么做6腾讯建站平台官网
  • 郑州专业网站建设公司详情晋城网站设计
  • 东莞网站(建设信科网络)最专业网站建设公司首选
  • 优酷土豆网站建设iis 7.0 网站配置
  • 做抽奖网站合法吗网站毕业设计模板
  • 建设银行网站会员有什么用电商网站设计内容
  • 易语言做自动登陆网站做住宿的有几个网站
  • 网上做室内设计的网站高职院校优质校建设专栏网站
  • 怎么做投票 网站四大商业网站
  • 复古风格网站西安大雁塔图片
  • 简约设计网站房产网站建设机构
  • 技术培训班深圳网站优化平台
  • 网站管理和维护怎么做做电影网站违法吗
  • 企业网站背景颜色wix wordpress
  • 公司网站要更新哈密建设局网站
  • 关于网站建设的大学自己建一个电商网站吗
  • 怎么做淘宝网站赚钱免费asp网站源码
  • 为什么要创建网站子目录python基础教程百度亿
  • 昆明360网站制作网络推广技巧
  • 教育软件开发公司排名seo入门讲解
  • 周口网站建设公司京东客网站怎么做
  • 最受欢迎国内设计网站做网站怎么销售
  • 做美食网站首页怎么做视频建设网站
  • 金桥路附近做网站的高端室内设计