layout: post
title: 侯捷STL学习(七)
date: 2017-06-13
tag: 侯捷STL
---

第十六节 深度探索vector

vector源码剖析

  • vector内存2倍扩充,是在另外的地方重新申请内存,将数据搬过去
  • 前闭后开区间

  • 2倍扩充方法,reallocation
  • insert_aux函数中再次判断,原因是可能有其他放元素的操作如insert

  • 也要拷贝插入之后的数据,考虑到insert插入某个位置,红色框部分

vector's iterator

  • vector结点是连续的,iterator不需要是类,是个指针即可。
  • 算法问的五种相关类型,通过iterator traits实现
  • 通过指针偏特化

G4.9 vetor and iterator

  • 变得复杂,但是追踪其根源和G2.9本质一样。

第十七节 深度探索array和forward list

容器array

  • TR1技术报告1 ,C++1.0-1998和c++2.0-2011之间的过渡版本
  • 源码很清晰,没有构造和析构函数;申明数组大小;用指针当迭代器
  • G4.9变得复杂

容器forward-list

侯捷STL学习(七)--深度探索vector&&array的更多相关文章

  1. 侯捷STL学习(八)-- 深度探索deque

    layout: post title: 侯捷STL学习(八) date: 2017-07-19 tag: 侯捷STL --- 第十八节 深度探索deque上 duque内存结构 分段连续,用户看起来是 ...

  2. 侯捷STL学习(十)--容器hashtable探索(unordered set/map)

    layout: post title: 侯捷STL学习(十) date: 2017-07-23 tag: 侯捷STL --- 第二十三节 容器hashtable探索 hashtable冲突(碰撞)处理 ...

  3. 侯捷STL学习(12)--STL相关内容hash+tuple

    layout: post title: 侯捷STL学习(12) date: 2017-08-01 tag: 侯捷STL --- 第四讲 STL相关的内容 Hash Function 将hash函数封装 ...

  4. 侯捷STL学习(11)--算仿+仿函数+适配器

    layout: post title: 侯捷STL学习(十一) date: 2017-07-24 tag: 侯捷STL --- 第三讲 标准库内核分析-算法 标准库算法形式 iterator分类 不同 ...

  5. 侯捷STL学习(九)--关联式容器(Rb_tree,set,map)

    layout: post title: 侯捷STL学习(九) date: 2017-07-21 tag: 侯捷STL --- 第十九节 容器rb_tree Red-Black tree是自平衡二叉搜索 ...

  6. 侯捷STL学习(一)

    开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...

  7. 侯捷STL学习(一)--顺序容器测试

    开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...

  8. 侯捷STL学习(六)--深入list && Iterator traits

    第十三,四节 深度探索list(上,下) list Gnu2.9源代码实现 注意node代码和图示的位置 实现前闭后开,增加一个空白节点 用的分配器alloc Iterator智能指针,需要知道结点n ...

  9. 侯捷STL学习(四)--allocator和容器时间的实现关系

    第十一节 分配器 分配器的好坏影响到容器的性能 operator new()里面调用malloc D:\Program Files (x86)\Microsoft Visual Studio 12.0 ...

随机推荐

  1. HDFS相关概念

    数据块 每个磁盘都有默认的数据块大小,这是磁盘进行数据读写的最小单位.构建与单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的快.该文件系统块的大小可以使磁盘块的整数倍.文件系统块一般为几千字节,而 ...

  2. MyEclipse+PyDev配置搭建Python开发环境

    打开help-> install from catalog 输入pydev查找并安装pydev 根据提示进行安装,安装完后重启myeclipse

  3. 根据mysql中字段为时间戳查询某天数据

    //数据库保存的为时间戳select * from 表名 where FROM_UNIXTIME(存时间字段名,'%Y-%m-%d')='2017-12-12' //数据库保存的为日期格式时间SELE ...

  4. elasticsearch中如何手动控制全文检索结果的精准度

    1.为帖子数据增加标题字段 POST /forum/article/_bulk{ "update": { "_id": "1"} }{ &q ...

  5. 初探MyBatis之HelloWorld(二)

    二.不使用 XML 构建 SqlSessionFactory 不使用xml构建SqlSessionFactory的话,就要用java代码来连接数据库.我这里直接new DataSorce()接口实现g ...

  6. Androidstudio与unity交互踩坑(黑屏问题)

    unity打包好的apk运行出现黑屏,made with unity的界面都没有出现 原因是android项目中MainActivity没有继承UnityPlayerActivity

  7. 5.6 WebDriver API实例讲解(31-40)

    31.判断页面元素是否存在 public static void testElementExist(){ driver.get("http://www.sogou.com"); t ...

  8. C++的坑真的多吗

    先说明一下,我不希望本文变成语言争论贴.希望下面的文章能让我们客观理性地了解C++这个语言.(另,我觉得技术争论不要停留在非黑即白的二元价值观上,这样争论无非就是比谁的嗓门大,比哪一方的观点强,毫无价 ...

  9. Windows 10 SDK 10.0.10158

    昨天微软发布了Windows 10 SDK 10158版本: http://blogs.windows.com/buildingapps/2015/06/30/windows-10-sdk-previ ...

  10. java中base64

    // 将 s 进行 BASE64 编码 public static String getBASE64(String s) { if (s == null) return null; return (n ...