MyVector 的实现

myVector

#include 
#include 

int size2=0;

using namespace std;

template 
class myvector
{
    int size;
    type value;
    type *arr;

public:
    //无参构造
    myvector(){};

    //有参构造
    myvector(int s,type v):size(s),value(v)
    {
        arr=new int[size];
        for(int i=0;iarr,other.arr,size);
    }

    //析构函数
    ~myvector()
    {
        delete [] arr;
        arr=nullptr;
    }

    //求容器的大小
    type my_capacity();

    //添加元素
    void my_push(const type & value);

    //展示元素
    void show();

    //求容器的真实大小
    type my_size();

    //访问容器中的元素
    type my_at(type local);

    //给容器中的元素赋值
    void my_assign(int size,const type &value);

    //返回起始位置的引用
    type my_front();

    //返回最后一个位置的引用
    type my_back();

    //返回起始元素的迭代器
    type *my_begin();

    //返回末尾下一个位置的迭代器
    type *my_end();

    //指定位置的插入
    type *my_insert(type local,const type &value);

    //清空容器中的元素
    void my_clear();

    //判空函数
    bool my_empty();

};

//求容器的大小
template 
type myvector::my_capacity()
{
    return size;
}

//添加元素
template 
void myvector::my_push(const type & value)
{

    //将初始化的size赋值给size2
    if(size2==0)
    {
        size2=size;
    }
    if(size2>=size)
    {
        size2=size;
        size=size*2;  //二倍扩容
    }
    if(size2<=size)
    {
        size2++;
    }

    arr[size2-1]=value;
    cout<<"添加成功"<
void myvector::show()
{
    for(int i=0;i
type myvector::my_size()
{
    int size3=size2;
    return size3;
}

//访问容器中的元素
template 
type myvector::my_at(type local)
{
    return arr[local];
}

//给容器中的元素赋值
template 
void myvector::my_assign(int num,const type &value)
{
    for(int i=num-1;i>=0;i--)
    {
        arr[i]=value;
    }
}

//返回起始位置的引用
template 
type myvector::my_front()
{
    return arr[0];
}

//返回最后一个位置的引用
template 
type myvector::my_back()
{
    return arr[size2-1];
}

//返回起始元素的迭代器
template 
type* myvector::my_begin()
{
    type *ptr=arr;
    return ptr;
}

//返回末尾下一个位置的迭代器
template 
type* myvector::my_end()
{
    type *ptr1=(arr+size2-1);
    return ptr1;
}

//指定位置的插入
template 
type *myvector::my_insert(type local,const type &value)
{
    size2++;
    for(int i=size-1;i>=local;i--)
    {
        arr[i+1]=arr[i];
    }

    //插入
    type *ptr2=(arr+local);
    *ptr2=value;
    return ptr2;
}

//清空容器中的元素
template 
void myvector::my_clear()
{
    size2=0;
    cout<<"清空成功"<
bool myvector::my_empty()
{
    if(size2==0)
        return 1;
    else
        return 0;
}

int main()
{
    //初始化
    myvector V1(5,7);

    //容器大小
    cout<<"容器大小为:"<

MyVector 的实现_第1张图片

2、思维导图

你可能感兴趣的:(c++,其他)