9.14号作业

news/2024/3/29 8:01:13

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.tangninghui.cn.cn/item-4.htm

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【陕西理工大学-数学软件实训】数学实验报告(8)(数值微积分与方程数值求解)

目录 一、实验目的 二、实验要求 三、实验内容与结果 四、实验心得 一、实验目的 1. 掌握求数值导数和数值积分的方法。 2. 掌握代数方程数值求解的方法。 3. 掌握常微分方程数值求解的方法。 二、实验要求 1. 根据实验内容&#xff0c;编写相应的MATLAB程序&#xff0c…

前端测试——端对端测试框架 Playwright 总结

在进行前端测试前&#xff0c;我们需要明确我们需要怎样的前端测试。 前端测试类型总结 前端应用测试分为几种常见类型: 端到端&#xff08;e2e&#xff09; &#xff1a;一个辅助机器人&#xff0c;表现得像一个用户&#xff0c;在应用程序周围点击&#xff0c;并验证其功能…

ChatGPT笔记

我最常用的GPT软件: 1.移动端APP: AI EDU, 一直免费的一个应用,挺不错的AI EDUhttps://ai.aigcfun.com/ 百度的文心一言, 个人感觉一般般&#xff0c;可以下载app版本文心一言https://yiyan.baidu.com/ Nova (Play Store下载 需要魔法 且不免费) 2.电脑PC端: 百度的文心一言, …