9.14 C++作业

仿照vector手动实现自己的myVector,最主要实现二倍扩容功能

#include 


using namespace std;


template 
class Myvector
{
    T *data;    //存储数据的数组
    int len;      //当前数组的长度
    int mycapa;   //容纳数据的总容量

public:
    //构造函数
    Myvector():data(NULL),len(0),mycapa(0){cout<<"无参构造"< mycapa)        //如果数组长度大于最大容量,最大容量二倍扩容
        {
            mycapa = 2*len;
            int *p = new T[mycapa];
            for(int i=0; i mycapa)
        {
            mycapa = 2*len;
            int *p = new T[mycapa];
            for(int i=0; i=pos; i--){
                data[i+1] = data[i];
            }
            data[pos] = a;
        }
        len++;
    }

    //移除最后一个元素
    void mypop_back()
    {
        len--;
        cout<<"移除最后一个元素成功"<len)
        {
            cout<<"删除失败"<data[i-1] = this->data[i];
        }
        len--;
        cout<<"删除指定位置元素成功"< m(4,6);   //有参构造创建了4个元素,每个元素都是6
    m.my_show();

    m.mypop_back(7);      //尾插
    m.mypop_back(8);
    m.my_show();
    m.my_capacity();      //返回最大容量,此时为8

    cout<<"***************************************"<

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