zoukankan      html  css  js  c++  java
  • 侯捷STL学习(八)-- 深度探索deque


    layout: post
    title: 侯捷STL学习(八)
    date: 2017-07-19
    tag: 侯捷STL

    第十八节 深度探索deque上

    • duque内存结构
    • 分段连续,用户看起来是连续的
    • 迭代器为了维持连续的状态,每次++,--都需要判断当前buffer是否用完,若用完则需要通过控制中心跳到下一个buffer
    • 控制中心的map是指向vector的,以后也是2倍增长
    • deque iterator迭代器实现,关键有指向map的指针
    • deque<T>::insert讲解
    • 很好体现deque的灵活性
    • 要判断插入位置离首尾那个近一些,插入操作涉及元素搬移

    第十九节 深度探索deque下

    • deque如何实现连续空间
    • 主要是迭代器运算符重载实现
    • 用后++(i++)调用前++(++i)
    前++(++i)其中i作为对象,self& operator++(){}返回引用,这样可以进行两次前++
    后++ (i++) self operator++(int){},阻止两次后++
    ++++i对的++(++i);不允许两次后++ (i++)++
    

    • G4.9实现
    • 控制中心实际为vector,当不足的时候,成两倍的增长,此时copy数据到新vector的中心位置,这样方便两边数据的增长

    queue,stack的实现

    • 底层用deque实现,实际操作调用deque的函数

    • 有时不把queue,stack当作容器

    • stack,queue都不允许遍历,不提供iterator

    • stack,queue也可以选择list做底层实现,默认选择duque做底层

    • queue不可选择vector做底层实现,stack也可以用vector做底层实现

    • 编译器不会对容器做全面的检查,当没有调用错误的函数时候,编译器不会报错!

  • 相关阅读:
    weblogic.xml
    LogAspect
    加注解时插入权限切面@EnableDataSecurity
    查询时根据权限更改sql
    web.xml
    log4j.properties
    jaxb解析xml
    sql 更新 批量更新 更新得到主键
    告诉maven,我真的不需要web.xml
    FLask中蓝图(用于分文件)
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/7209029.html
Copyright © 2011-2022 走看看