9.14号作业

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

有些功能,不会

复制代码
#include <iostream>

using namespace std;
//创建vector类
class Vector
{
private:
    int *data;
    int size;
    int capacity;
public:
    //无参构造
    Vector(){}
    //拷贝构造
    Vector(const Vector &other):size(0),capacity(0)
    {
        data=new int[other.capacity];
        for(int i=0;i<size;i++)
        {
            data[i]=other.data[i];
        }
    }
    ~Vector()
    {
        delete []data;
    }
    //返回第一个位置的元素
    int front()
    {
        return data[0];
    }
    //返回最后一个位置的元素
    int back()
    {
        return data[size-1];
    }
    //返回 最末位置的迭代器
    int *end()
    {
        return &data[size];
    }

    //返回第一个位置的迭代器
    int *begin()
    {
        return &data[0];
    }

    //添加元素
    void push_back(int e)
    {
        if(size==capacity)
        {
            cout<<"已经到容器最大值"<<endl;
            if(capacity==0)
            {capacity=1;}
        }
        else
        {
            capacity=capacity*2;
        }
        int *newdata=new  int[capacity];
        for(int i=0;i<size;i++)
        {
            newdata[i]=data[i];
        }
        delete[] data;
        data=newdata;

        data[size]=e;
        size++;
    }
    //删除末尾元素
    void pop_back()
    {
        size--;
    }
    //判空
    bool empty()
    {
        return size==0;
    }
    //获取元素数量
    int get_size()
    {
        return size;
    }
    //容器大小
    int get_capacity()
    {
        return capacity;
    }
    //遍历
    void show()
    {
        int i = 0;
        for(i=0;i < size;i++)
        {
            cout << data[i] << "\t";
        }
           cout << endl;
    }

};
int main()
{
    Vector V1;
    V1.push_back(4);
    V1.push_back(5);
    V1.push_back(9);
    V1.push_back(3);
    V1.push_back(6);
    V1.push_back(2);
    V1.show();
    cout<<"最大容量"<<V1.get_capacity()<<endl;
      cout<<"拥有元素"<<V1.get_size()<<endl;
      V1.pop_back();
      V1.show();
    return 0;
}

2.思维导图

相关推荐
智者知已应修善业1 小时前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
91刘仁德1 小时前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
diediedei1 小时前
模板编译期类型检查
开发语言·c++·算法
mmz12072 小时前
分治算法(c++)
c++·算法
一切尽在,你来2 小时前
C++多线程教程-1.2.1 C++11/14/17 并发特性迭代
开发语言·c++
80530单词突击赢2 小时前
C++入门指南:从零到精通
开发语言·c++
Tansmjs3 小时前
C++编译期数据结构
开发语言·c++·算法
diediedei3 小时前
C++类型推导(auto/decltype)
开发语言·c++·算法
兩尛3 小时前
c++的数组和Java数组的不同
java·开发语言·c++
lhxcc_fly3 小时前
手撕简易版的vector
c++·vector