vector 简单底层实现


代码:

#include 
#include 
#include 
using namespace std;
template 
class Vector{
private :
    T* data; /// 动态数组 指针指向一个内存空间
    int len; /// 当前存在元素个数
    int sz;  /// 当前动态数组的大小
public :
    Vector(){
        len=0;
        sz=1;
        data=new T[1]; /// 分配一个内存空间
    } /// 构造 初始化
    void clear(){
        len=0;
        sz=1;
        delete[] data;
        data=new T[1];
    }
    int size(){
        return len;
    }
    T& operator [] (const int index){
        if(index>=len) {
            cout<<"Error!"<=sz){ /// 当前动态数组存不下了,再开两倍的空间
            sz=sz*2+1;
            T* newdata=new T[sz];
            memcpy(newdata,data,sizeof(data));
            /// 将之前的数据复制进来
            delete[] data;
            data=newdata;
        }
        data[len++]=a;
    } /// 插入一个值
protected :
};
struct node{
    int v,id;
    node(int v=0,int id=0):v(v),id(id){}
};

int main(){
    Vector V;
    V.push_back(node(1,1));
    V.push_back(node(2,2));
    V.push_back(node(3,3));
    V[0]=node(1,4);
    for(int i=0;i


你可能感兴趣的:(vector 简单底层实现)