C++,Java,Python,PHP以及其他任何语言知识点整理
面向面试和平时知识储备

C++

vector

实现方法

  1. 定义
    template<class _Ty,class _Ax>
    class vector : public _Vector_val<_Ty, _Ax>
    {   // varying size array of values
    public:
    /********/
    protected:
    pointer _Myfirst;   // 指向容器对象的起始字节位置
    pointer _Mylast;    // 指向容器对象中有效元素的最后一个字节位置
    pointer _Myend; // 指向容器对象占用的内存空间的最后一个字节位置
    };
  2. 根据以上三个指针可表现不同含义
  • _Myfirst 和 _Mylast 可以用来表示 vector 容器中目前已被使用的内存空间

  • _Mylast 和 _Myend 可以用来表示 vector 容器目前空闲的内存空间

  • _Myfirst 和 _Myend 可以用表示 vector 容器的容量
  1. 当容器满载时
    • 完全弃用当前空间
    • 重新申请一片更大的空间
    • 将原空间中的数据复制到新的空间,然后释放原来的空间
    • 不同的编译器申请新空间的量是不同的

map

实现方法

  • 红黑树(见算法部分)

stack和queue

实现方法

  • deque
    • 基本上都是deque套了一层(不是继承)
    • 可以通过类模板的第二个参数来指定容器类型

标签: none

添加新评论