【C++】vector的模拟实现
💗个人主页💗
⭐个人专栏——C++学习⭐
💫点击关注🤩一起学习C语言💯💫
目录
导读
1. vector的核心框架接口
2. 构造函数
2.1 基本构造
2.2 拷贝构造(传统写法)
2.3 析构函数
2.4 operator=运算符重载(传统写法)
2.5 swap函数
2.5 operator=运算符重载(现代写法)
3. vector遍历
3.1 size()和capacity()
3.2 operator[]遍历
3.3 迭代器和范围for
4. vector常见函数
4.1 reserve函数
4.2 resize函数
4.3 insert函数
4.4 erase函数
4.5 push_back函数
4.6 pop_back函数
4.7 empty函数
5. 构造函数和拷贝构造完善
5.1 拷贝构造(现代写法)
5.2 构造函数
初始化构造
列表构造
区间构造
6. 代码整理
6.1 vector.h文件
6.2 test.cpp文件
导读
我们在上期讲解了vector的一下基本使用,今天我们来模拟实现一下vector。
1. vector的核心框架接口
vector类有三个成员变量:start,finish和end_of_storage。
这三个成员变量可以用于遍历vector中的元素、确定vector的大小和容量,或者进行其他操作。
-
start:指向vector中第一个元素的指针或迭代器。它表示vector中数据的起始位置。
-
finish:指向vector中最后一个元素的下一个位置的指针或迭代器。它表示vector中数据的结束位置。
-
end_of_storage:指向vector内部存储空间的末尾的指针或迭代器。它表示vector内部存储空间的结束位置。
start、finish和end_of_storage三者之间的关系是:start = _start); assert(pos =pos) { *(it + 1) = *it; --it; } *pos = val; ++_finish; } iterator erase(iterator pos) { assert(pos >= _start); assert(pos
