template
class Myvector
{
private:
T * first;
T * last;
T * end;
};
要实现的函数:
构造函数
析构函数
拷贝构造
拷贝赋值
at()
empty()
full()
front()
back()
size()
clear()
expand() 二倍扩容函数
push_back()
pop_back()
#include <iostream>
using namespace std;
template <typename T>
class Myvector
{
private:
T * first; //起始
T * last; //存储数据的最后一个
T * end; //最大容量的最后一个
public:
// 构造函数
Myvector():first(nullptr),last(nullptr),end(nullptr){
}
// 析构函数
~Myvector()
{
delete []first;
first = last = end = nullptr;
}
// 拷贝构造
Myvector(const Myvector& other):first(new T[other.size()])
{
last = first+other.size();
end = first+other.capacity();
memcpy(this->first, other.first, other.size()*sizeof(T));
}
// 拷贝赋值
Myvector& operator=(const Myvector& other)
{
if(this == &other)
{
return *this;
}
delete []first; //删除原vector
first = new T[other.size(