Vector底层实现

Vector底层实现

vector的三个私有成员

:_start   记录初始位置
, _finish 记录有效字符
, _endofstoage  记录容量大小

vector会存储的类型不同,所以要用模版来定类型 

typedef T* iterator;

iterator _start;
iterator _finish;
iterator _endofstoage;

也就是T*

 

构造函数的方法很多 可以用迭代器的范围来构造

//用迭代器构造的构造函数

传过来的是它的迭代器的类型 我们也用它的类型来接收 不比加* &

 三个属性先初始化

只要根据传过来的范围来push_back()即可

push_back函数后面会实现

        //用迭代器构造的构造函数
        template <class InputIterator>
        vector(InputIterator first, InputIterator last)
            : _start(nullptr)
            , _finish(nullptr)
            , _endofstoage(nullptr)
        {
            while (first != last)
            {
                push_back(*first);
                ++first;
            }
        }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Vector底层实现