C++11自定义实现vector
如果有错误欢迎大家指出。
- 不是标准答案!!!
- 模板类所有内容都在头文件定义。
- 数据成员为连续内存首 t,元素数量size,已分配空间len。
- 支持移动使用移动。
#ifndef MYVECTOR_H
#define MYVECTOR_H
#include<memory>
#include "myIterator.h"
template<class T>
class myVector
{
public:
typedef T value_type;
//typedef Iterator<T> Iterator;
typedef T* Iterator;
myVector();
myVector(const Iterator beg, const Iterator end);
myVector(const int n);
myVector(const myVector& a);
~myVector();
Iterator begin() const;
Iterator end() const;
int size() const;
int capacity() const;
void reserve(const int newCapacity);
void push_back(const T& v);
void pop_back();
T& back();
bool empty() const;
T& operator[](int i) const;
Iterator insert(Iterator pos, const T& val);
Iterator erase(Iterator pos);
void clear();
private:
T* t_;
int size_;
int len_;
};
template<class T>
myVector<T>::myVector() :