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.思维导图

相关推荐
繁华似锦respect1 小时前
C++ 智能指针底层实现深度解析
linux·开发语言·c++·设计模式·代理模式
Bona Sun2 小时前
单片机手搓掌上游戏机(二十三)—esp32运行简单街机模拟器软硬件准备
c语言·c++·单片机
@小码农3 小时前
2025年北京海淀区中小学生信息学竞赛第二赛段C++真题
开发语言·数据结构·c++·算法
sulikey3 小时前
C++模板初阶详解:从函数模板到类模板的全面解析
开发语言·c++·模板·函数模板·类模板
0 0 03 小时前
CCF-CSP第39次认证第三题——HTTP 头信息(HPACK)【C++】
开发语言·c++·算法
汉克老师3 小时前
2023年海淀区中小学信息学竞赛复赛(小学组试题第二题 回文时间 (time))
c++·算法·北京海淀中小学信息竞赛·模拟法
还没想好取啥名4 小时前
C++11新特性(一)——原始字面量
开发语言·c++
天赐学c语言4 小时前
12.6 - K个一组翻转链表 && C 编译到执行的4个阶段
数据结构·c++·链表·c编译
爪哇部落算法小助手5 小时前
每日两题day65
数据结构·c++·算法
橘颂TA5 小时前
【剑斩OFFER】算法的暴力美学——颜色分类
数据结构·c++·算法·动态规划