C++,Java,Python,PHP以及其他任何语言知识点整理
面向面试和平时知识储备
C++
vector
实现方法
- 定义
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; // 指向容器对象占用的内存空间的最后一个字节位置 };
- 根据以上三个指针可表现不同含义
-
_Myfirst 和 _Mylast 可以用来表示 vector 容器中目前已被使用的内存空间
-
_Mylast 和 _Myend 可以用来表示 vector 容器目前空闲的内存空间
- _Myfirst 和 _Myend 可以用表示 vector 容器的容量
- 当容器满载时
- 完全弃用当前空间
- 重新申请一片更大的空间
- 将原空间中的数据复制到新的空间,然后释放原来的空间
- 不同的编译器申请新空间的量是不同的
map
实现方法
- 红黑树(见算法部分)
stack和queue
实现方法
- deque
- 基本上都是deque套了一层(不是继承)
- 可以通过类模板的第二个参数来指定容器类型
评论