23062C++&QTday7

 仿照vector手动实现自己的myVector

代码:

#include 
#define MAX 128
using namespace std;

template
class myVector
{
private:
    int num;
    T val;
    T *data;              //数据域
    int V_size=MAX;
public:
    myVector():data(new T[MAX]),num(0){}           //无参构造
    myVector(int a,T b):num(a),val(b),data(new T[MAX])  //有参构造
    {
        //二倍扩容判断
        if(a>V_size)
        {
            V_size*=2;
            T *newdata=new T[V_size];
            for(int i=0;i=num)
            throw int(1);
        return data[i];
    }
    //front函数
    T & my_front()
    {
        return data[0];
    }
    //back函数
    T & my_back()
    {
        return data[num-1];
    }

    //erase函数
    MyIterator my_erase(MyIterator loc)
    {
        for(int i=loc;iloc-1;i--)
            data[i]=data[i-1];
        data[loc]=n;
        num++;
    }
    //begin函数
    MyIterator  my_begin()
    {
        return MyIterator(data);
    }
    //end函数
    MyIterator  my_end()
    {
        return MyIterator(data+num-1);
    }
    //push_back函数
    void push_back(const T &val)
    {
        //二倍扩容判断
        if(num==V_size)
        {
            V_size*=2;
            T *newdata=new T[V_size];
            for(int i=0;iS1(5,10);
    cout<

运行结果:

23062C++&QTday7_第1张图片

思维导图

23062C++&QTday7_第2张图片

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