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

响应式网站建设准备网站优化站外链接怎么做

响应式网站建设准备,网站优化站外链接怎么做,做网站有生意吗,优化网站入口页面的四个维度目录 前言 List类的基本概念 List的构造函数 List类迭代器的使用 List的功能 List的元素访问 List与vector比较 前言 vector的insert和erase都会导致迭代器失效list的insert不会导致迭代器失效#xff0c;erase会导致迭代器失效 insert导致失效的原因是开辟了新空间后…目录 前言 List类的基本概念 List的构造函数 List类迭代器的使用 List的功能 List的元素访问 List与vector比较 前言 vector的insert和erase都会导致迭代器失效list的insert不会导致迭代器失效erase会导致迭代器失效 insert导致失效的原因是开辟了新空间后迭代器扔指向原空间erase导致失效的原因是销毁的空间不是连续的空间迭代器找不到下一块小空间的位置 List类的基本概念 List类的文档cplusplus.com/reference/list/list/?kwlist 1、list是在常数范围内的任意位置进行插入和删除的序列容器可以向前向后双向迭代 2、list的底层是双向链表结构 3、list和forword_list相似但后者是单链表且只能向前迭代 4、和array、vector等容器相比list可以在任意位置插入、删除元素效率高 5、list的缺点是不支持随机访问、额外开辟空间存放结点信息、查找效率低需要遍历整个链表 List的构造函数 构造函数 接口说明 list (size_type n, const value_type val value_type()) 构造的list中包含n个值为val的元素 list() 构造空的list list (const list x) 拷贝构造函数 list (InputIterator first, InputIterator last) 用[first, last)区间中的元素构造list // list的构造 void TestList1() {listint l1; //构造空的l1listint l2(4, 100); //l2中放4个值为100的元素listint l3(l2.begin(), l2.end()); //用l2的[begin(), end()左闭右开的区间构造l3listint l4(l3); //用l3拷贝构造l4//以数组为迭代器区间构造l5int array[] { 16,2,77,29 };listint l5(array, array sizeof(array) / sizeof(int));//列表格式初始化listint l6{ 1,2,3,4,5 };//C11的initializer_list,多参数构造函数会发生隐式类型转换//用迭代器方式打印l5中的元素listint::iterator it l5.begin();while (it ! l5.end()){cout *it ;it;} cout endl;// C11范围for的方式遍历for (auto e : l5)cout e ;cout endl; }List类迭代器的使用 函数声明 接口说明 begin end 返回第一个元素的迭代器、返回最后一个元素下一个位置的迭代器 rbegin rend 返回第一个元素的reverse_iterator,即end位置 最后一个元素下一个位置的迭代器 返回最后一个元素下一个位置的reverse_iterator,即begin位置 第一个元素的迭代器 begin和end为正向迭代器对迭代器执行操作迭代器向后移动rbegin和rend为反向迭代器对迭代器执行操作迭代器向前移动 // list迭代器的使用 // 注意遍历链表只能用迭代器和范围for void PrintList(const listint l) {// 注意这里调用的是list的 begin() const返回list的const_iterator对象for (listint::const_iterator it l.begin(); it ! l.end(); it){cout *it ;// *it 10; 编译不通过}cout endl; }void TestList2() {int array[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };listint l(array, array sizeof(array) / sizeof(array[0]));// 使用正向迭代器正向list中的元素// listint::iterator it l.begin(); // C98中语法auto it l.begin(); // C11之后推荐写法while (it ! l.end()){cout *it ;it;}cout endl;// 使用反向迭代器逆向打印list中的元素// listint::reverse_iterator rit l.rbegin();auto rit l.rbegin();while (rit ! l.rend()){cout *rit ;rit;}cout endl; } List的功能 函数声明 接口说明 empty 检测list是否为空是返回true否则返回falsesize返回list中有效节点的个数push_front头插pop_front头删push_back尾插pop_back尾删insert指定位置插入erase删除指定位置的元素swap交换两个list中的元素clear清空list中的有效元素 // list插入和删除 // push_back/pop_back/push_front/pop_front void TestList3() {int array[] { 1, 2, 3 };listint L(array, array sizeof(array) / sizeof(array[0]));// 在list的尾部插入4头部插入0L.push_back(4);L.push_front(0);PrintList(L);// 删除list尾部节点和头部节点L.pop_back();L.pop_front();PrintList(L); } List的元素访问 函数声明 接口说明 front 返回list的第一个节点中值的引用 back 返回list的最后一个节点中值的引用 List与vector比较 vectorlist底层结构 动态顺序表一段连续空间 带头结点的双向循环链表 随机访问 支持随机访问效率为O(1) 不支持随机访问 效率为O(N) 插入和删除 任意位置插入和删除效率低需要搬移元素时间复杂度为O(N)插入时有可能需要增容 开辟新空间拷贝元素释放旧空间导致效率更低 任意位置插入和删除效率高不 需要搬移元素时间复杂度为 O(1) 空间利用率 底层为连续空间不容易造成内存碎片空间利用率 高缓存利用率高 底层节点动态开辟小节点容易 造成内存碎片空间利用率低 缓存利用率低 迭代器 原生指针 对原生指针结点指针进行封装 迭代器失效 在插入元素时要给所有的迭代器重新赋值因为插入 元素有可能会导致重新扩容致使原来迭代器失效删 除时当前迭代器需要重新赋值否则会失效 插入元素不会导致迭代器失效 删除元素时只会导致当前迭代 器失效其他迭代器不受影响 使用场景 需要高效存储支持随机访问不关心插入删除效率 大量插入和删除操作不关心随 机访问 ~over~
http://www.pierceye.com/news/842435/

相关文章:

  • 一级A做爰片安全网站济南营销型网站制作
  • 网站规划说明书范文17素材网官网
  • 青岛做网站大公司免费的行情网站app网页推荐
  • 产品网站建设多少钱哪些网站做推广效果好
  • 网站开发所需技能外链网
  • 广州做家教的网站临沂哪里有做网站
  • 网站建设介绍会发言稿网站开发主页
  • 做推广赚钱的网站如何制作网站策划书
  • 微信公众号商城网站开发能不能不用虚拟主机建设网站
  • iis 网站目录权限vps网站无法通过ip访问
  • 重庆关键词优化咸阳seo培训
  • 专业网站建设分类标准嘉兴网络项目建站公司
  • 做婚礼网站的公司简介网页打不开怎么办页面无法显示
  • 怎么套用模板做网站白嫖二级域名
  • 网站如何进行备案建立平台的步骤
  • 济南免费网站建设网站用什么软件编写
  • 网站如何注册微信公众平台 类型站长要维护网站
  • 美食类网站模板有的网站为什么打不开怎么回事
  • 平面设计网站导航1万元可以注册公司吗
  • 做网站接口多少钱怎样做旅游网站
  • dw制作旅游网站教程天津市区县档案部门网站建设指导意见
  • 关于网站建设的大学pinthis wordpress
  • 济宁 做网站企业做外贸网站常用术语
  • 国内优秀的设计网站推荐网页设计工作室赚钱吗
  • 商汇通网站广州白云学校网站建设
  • 茶叶企业建设网站php网站开发基础
  • 深圳网站建设 猴王网络地方信息网站源码
  • 微网站后台内容设置erp系统定制
  • 图片点击切换网站模板网站开发 北京外包公司
  • 网站正在建设中 免费东莞手机网站设计公司