源码之前,了无秘密
曾经面试官问过我这么一个问题:请你描述一下,STL中的所有容器,它们的底层实现机制、它们增删查改的时间复杂度是多少。
当时回答的迷迷糊糊的。本篇,就围绕这个话题展开。
Vector
什么是Vector?可以理解为是动态数组。
Vector所采用的数据结构非常简单,连续线性空间。
template <class T,class Alloc * alloc> //模板,后面会专门出一篇写C++的模板编程
class vector{
···
protected:
iterator start; //表示目前使用空间的头
iterator finish; //表示目前使用空间的尾
iterator end_of_storage; //表示目前可用的空间的尾
···
}