类模板实例 实现vector容器
STL的vector容器是一个动态扩容顺序容器,底层就是一个二倍扩容的数组。
在实现vector时,它的实现并没有使用一个数组指针+当前有效位置下标+数组容量大小的形式实现,而是用三个指针来维护这个数组。
有三个指针_first、_last、_end,_first为数组的起始地址,_last指向最后一个有效元素的后继位置,_end指向数组末尾的后继位置。

_first == _last时,容器为空,_last == _end时,容器满,_end - _first 为容器容量。
#include <iostream>
using namespace std;
template<typename T>
class vector
{
public:
vector(int size = 10)
{
_first = new T[size];
_last = _first;
_end = _first + size;
}
~vector()
{
delete[] _first;
_first = nullptr;
_last = nullptr;
_end = nullptr;
}
vector(const vector<T>& vec)
{
int size = vec

本文详细介绍了C++ STL中vector容器的实现原理,包括使用三个指针管理动态数组,以及push_back、pop_back等操作的内部逻辑。通过实例展示了如何创建、复制和调整vector的容量。
最低0.47元/天 解锁文章
609

被折叠的 条评论
为什么被折叠?



