博主主页:Yan. yan.
C语言专栏
数据结构专栏
力扣牛客经典题目专栏
C++专栏
文章目录
一、Vector的成员变量
我们以类模板的方式来实现Vector的实现。
template<class T>
类型名称也重新进行修改
typedef T* iterator;
typedef const T* const_iterator;
根据库的实现方式,成员函数如下:
private:
iterator _start;
iterator _finish;
iterator _end_of_storage;
二、默认成员函数
1、构造函数
构造函数可分为3种:
- 无参构造
- 构造n个val对象
- 根据迭代区间构造
对于无参的构造,我们只需要初始化成员函数即可。
无参构造
//无参构造函数
vector()
//:_start(nullptr)
//,_finish(nullptr)
//,_end_of_storage(nullptr)
{
}
构造n个val对象
//构造n个对象
vector(size_t n, const T& val = T())
:_start(nullptr)
, _finish(nullptr)
, _end_of_storage(nullptr)
{
//1.开空间
reserve(n);
//2.将空间填充为val对象
for (size_t i = 0; i < capacity(); i++)
{
_start[i] = val;
}
//也可以复用resize
//resize(n, val);
}
注意:这里在构造时必须初始化,如果不初始化,在调