MyVector 的实现

myVector

#include <iostream>
#include <vector>int size2=0;using namespace std;template <typename type>
class myvector
{int size;type value;type *arr;public://无参构造myvector(){};//有参构造myvector(int s,type v):size(s),value(v){arr=new int[size];for(int i=0;i<size;i++){arr[i]=value;}}//拷贝构造myvector(const myvector&other):size(other.size),value(other.value){memcpy(this->arr,other.arr,size);}//析构函数~myvector(){delete [] arr;arr=nullptr;}//求容器的大小type my_capacity();//添加元素void my_push(const type & value);//展示元素void show();//求容器的真实大小type my_size();//访问容器中的元素type my_at(type local);//给容器中的元素赋值void my_assign(int size,const type &value);//返回起始位置的引用type my_front();//返回最后一个位置的引用type my_back();//返回起始元素的迭代器type *my_begin();//返回末尾下一个位置的迭代器type *my_end();//指定位置的插入type *my_insert(type local,const type &value);//清空容器中的元素void my_clear();//判空函数bool my_empty();};//求容器的大小
template <typename type>
type myvector<type>::my_capacity()
{return size;
}//添加元素
template <typename type>
void myvector<type>::my_push(const type & value)
{//将初始化的size赋值给size2if(size2==0){size2=size;}if(size2>=size){size2=size;size=size*2;  //二倍扩容}if(size2<=size){size2++;}arr[size2-1]=value;cout<<"添加成功"<<endl;
}//展示元素
template <typename type>
void myvector<type>::show()
{for(int i=0;i<size2;i++){cout<<arr[i]<<"\t";}cout<<endl;
}//求容器的真实大小
template <typename type>
type myvector<type>::my_size()
{int size3=size2;return size3;
}//访问容器中的元素
template <typename type>
type myvector<type>::my_at(type local)
{return arr[local];
}//给容器中的元素赋值
template <typename type>
void myvector<type>::my_assign(int num,const type &value)
{for(int i=num-1;i>=0;i--){arr[i]=value;}
}//返回起始位置的引用
template <typename type>
type myvector<type>::my_front()
{return arr[0];
}//返回最后一个位置的引用
template <typename type>
type myvector<type>::my_back()
{return arr[size2-1];
}//返回起始元素的迭代器
template <typename type>
type* myvector<type>::my_begin()
{type *ptr=arr;return ptr;
}//返回末尾下一个位置的迭代器
template <typename type>
type* myvector<type>::my_end()
{type *ptr1=(arr+size2-1);return ptr1;
}//指定位置的插入
template <typename type>
type *myvector<type>::my_insert(type local,const type &value)
{size2++;for(int i=size-1;i>=local;i--){arr[i+1]=arr[i];}//插入type *ptr2=(arr+local);*ptr2=value;return ptr2;
}//清空容器中的元素
template <typename type>
void myvector<type>::my_clear()
{size2=0;cout<<"清空成功"<<endl;
}//判空函数
template <typename type>
bool myvector<type>::my_empty()
{if(size2==0)return 1;elsereturn 0;
}int main()
{//初始化myvector<int> V1(5,7);//容器大小cout<<"容器大小为:"<<V1.my_capacity()<<endl;//添加元素V1.my_push(8);V1.my_push(8);V1.my_push(8);//展示元素V1.show();//真实大小cout<<"真实大小:"<<V1.my_size()<<endl;//访问容器中的元素cout<<V1.my_at(4)<<endl;//给容器中的元素赋值V1.my_assign(5,9);V1.show();//返回起始位置的引用cout<<"起始元素为:"<<V1.my_front()<<endl;//返回最后一个位置的引用cout<<"最后位置元素为:"<<V1.my_back()<<endl;;//返回起始元素的迭代器int *p;p=V1.my_begin();cout<<"起始元素为:"<<*p<<endl;//返回末尾下一个位置的迭代器int *p1;p1=V1.my_end();cout<<"最后位置元素为:"<<*p1<<endl;//指定位置的插入V1.my_insert(2,3);V1.show();//判空cout<<V1.my_empty()<<endl;;return 0;
}

2、思维导图

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq弹窗拖动改变宽高

预览效果 <div classtishiMask><div class"tishiEm"><div id"coor"></div><div class"topNew ismove"><span class"ismove">提示</span><p onclick"closeTishi()"></p&…

使用 LoRA 和 QLoRA 对大型语言模型进行参数高效的微调

概述 随着我们深入研究参数高效微调 (PEFT) 的世界,了解这种变革性方法背后的驱动力和方法变得至关重要。在本文中,我们将探讨 PEFT 方法如何优化大型语言模型 (LLM) 对特定任务的适应。我们将揭开 PEFT 的优点和缺点,深入研究 PEFT 技术的复杂类别,并破译两种卓越技术的内…

OpenAI开发系列(二):大语言模型发展史及Transformer架构详解

全文共1.8w余字&#xff0c;预计阅读时间约60分钟 | 满满干货&#xff0c;建议收藏&#xff01; 一、介绍 在2020年秋季&#xff0c;GPT-3因其在社交媒体上病毒式的传播而引发了广泛关注。这款拥有超过1.75亿参数和每秒运行成本达到100万美元的大型语言模型&#xff08;Large …

springboot集成excel导入导出

1、引入依赖 <dependency><groupId>com.pig4cloud.excel</groupId><artifactId>excel-spring-boot-starter</artifactId><version>1.2.7</version> </dependency> 2、导出 ResponseExcel(name "测试列表") Post…

FFmpeg深入学习

文章目录 前言一、FFmpeg 基础指令二、FFmpeg 应用之视频播放器1、音视频播放流程2、音视频同步 三、FFplay 播放器1、FFmpeg 播放器的整体框架2、ffplay 的初体验及快捷键3、ffplay 模块划分4、ffplay 原理及流程 四、FFmpeg 编解码及转码1、FFmpeg 转码全流程简介2、FFmpeg 转…

JetBrains设置inline hint的背景色、前景色

如题。修改IDE的hint前景色和背景色。 修改后结果&#xff1a;

redis深度历险 1 - Redis基础数据结构-001

Redis有5种基础数据结构&#xff0c;分别为: string (字符串)、list(列表)、set (集合)、hash (哈希&#xff09;和zset (有序集合)。熟练掌握这5种基本数据结构的使用是Redis 知识最基础也最重要的部分&#xff0c;它也是在 Redis面试题中问到最多的内容。 1 字符串 string …

【论文阅读】MARS:用于自动驾驶的实例感知、模块化和现实模拟器

【论文阅读】MARS&#xff1a;用于自动驾驶的实例感知、模块化和现实模拟器 Abstract1 Introduction2 Method2.1 Scene Representation2.3 Towards Realistic Rendering2.4 Optimization3.1 Photorealistic Rendering3.2 Instance-wise Editing3.3 The blessing of moduler des…

【深度学习】 Python 和 NumPy 系列教程(十八):Matplotlib详解:2、3d绘图类型(4)3D曲面图(3D Surface Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 3D线框图&#xff08;3D Line Plot&#xff09; 2. 3D散点图&#xff08;3D Scatter Plot&#xff09; 3. 3D条形图&#xff08;3D Bar Plot&#xff09; 4. 3D曲面图…

VMware vCenter 从6.7跨版本升级至7.0U3N

本文尝试使用 vCenter Server Appliance 管理界面 (VAMI) 进行对vCenter Server Appliance7应用进行小版本升级&#xff0c;从6.7.0.47000升级到7.0.3.01600&#xff08;7.0U3N&#xff09;。 一、升级前的准备工作 1、检查当前运行环境&#xff08;当前为6.7.0.47000&#x…

【数据结构-树】AVL树

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

MFC中嵌入显示opencv窗口

在MFC窗体中建立一个Picture Control控件,用于显示opencv窗口 在属性中设置图片控件的资源ID为IDC_PIC1 主要的思路: 使用GetWindowRect可以获取图片控件的区域 使用cv::resizeWindow可以设置opencv窗口的大小,适合图片控件的大小 使用cvGetWindowHandle函数可以获取到ope…

Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

一、先来看下实现的效果 实现上面的效果需要解决俩个问题 当列表进行向下滑动到顶部的时候&#xff0c;继续滑动可以让弹窗向下收起来弹出上下拖动的时候&#xff0c;视图内容跟着上下移动、缩放大小 二、实现弹窗上下滑动的时候&#xff0c;动态改变内容区的位置和大小 通过…

PPT 生成整数序列字典序的r-组合算法

生成整数序列字典序的r-组合算法 一、PPT效果展示二、问题2.1 简述2.2 算法简述2.3 例子 三、PPT实现 一、PPT效果展示 二、问题 2.1 简述 给定一个整数序列 (1&#xff0c;2&#xff0c;3&#xff0c;…n)&#xff0c;输出其所有字典序的r-组合&#xff0c;注意事项&#xf…

前端html原生页面兼容多端H5和移动端适配方案

目录 图片代码最后 图片 是一个注册页面 代码 自己查看效果 注意: 单位全部用rem这样才能保证兼容性适配多端&#xff0c;px转rem转换公式 1px 1/37.5rem 所以想要20px应该对应20/37.5 0.53rem <!DOCTYPE html> <html lang"en"><head><met…

关于时空数据的培训 GAN:实用指南(第 01/3 部分)

第 1 部分&#xff1a;深入了解 GAN 训练中最臭名昭著的不稳定性。 一、说明 GAN 是迄今为止最受欢迎的深度生成模型&#xff0c;主要是因为它们最近在图像生成任务上产生了令人难以置信的结果。然而&#xff0c;GAN并不容易训练&#xff0c;因为它们的基本设计引入了无数的不稳…

可变参数JAVA

public class Main {public static void main(String[] args) {//方法形参的个数是可以变化的//格式&#xff1a;属性类型...名字System.out.println(getSum(1,2,3,4,5,6,7,8));}//通过键值对对象来遍历&#xff1b;public static int getSum(int a,int...args){//可变参数;int…

ArcGIS 10.7安装教程!

软件介绍&#xff1a;ArcGIS是一款专业的电子地图信息编辑和开发软件&#xff0c;提供一种快速并且使用简单的方式浏览地理信息&#xff0c;无论是2D还是3D的信息。软件内置多种编辑工具&#xff0c;可以轻松的完成地图生产全过程&#xff0c;为地图分析和处理提供了新的解决方…

【蓝桥杯选拔赛真题60】Scratch旋转风车 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch旋转风车 一、题目要求 编程实现 二、案例分析 1、角色分析

Linux自动化构建项目工具——Makefile/makefile

目录 一&#xff0c;背景知识 二&#xff0c;makefile/Makefile的编写 1.创建makefile/Makefile文件 2.在Makefile文件里写编译代码 3.伪目标——.PHONY 1.伪目标的特点 2.怎样实现总是被执行 4.Makefile/makefile文件的不同编写风格 1.背景知识 2.改写 一&#xff0c;背…