首页 > 其他分享 >vector类的学习和实现4月8日

vector类的学习和实现4月8日

时间:2023-04-08 18:47:29浏览次数:32  
标签:函数 迭代 实现 学习 vector 析构 拷贝 指针

vector类不同于string类.他其中的成员变量都为重定义自定义类型指针为迭代器,用指针的位置来代表容量,当前容器大小

构造函数:将所有指针都置为空,析构函数:释放空间并将所有成员指针置为空.

拷贝构造和重载=运算符:拷贝构造可以开空间并依次尾插被拷贝类的各个数值来达到构造的目的,而自定义运算符可以根据函数传参自动调用拷贝构造的特性来完成赋值的目的.手动实现swap为了提高效率.

一些特别的点:

1.迭代器失效问题:在迭代过程中若是出现容器扩容,则可能会出现迭代器指针失效导致程序崩溃.

或者迭代过程中删除元素导致vs环境下检测报错.可以用上述图片中用到的方法解决,就是erase函数会返回删除位置下一位的指针,我们可以用迭代器接受这个值来解决.

2.c++11的范围for是依靠容器的迭代器来工作的,若是begin函数或者end函数出现问题则迭代器也会出现问题

3.mem系列库函数是按字节处理数据的,所以在用mem系列函数处理类之间的问题时要慎重考虑.

4.c++中可以用double j=double(7.8)来初始化内置类型.因为需要考虑到兼容模版

5.析构函数一定要尽早些不然出现内存泄漏可能不会被发现,或者当工程写到一定程度时写了析构函数报错会很麻烦,因为不知道那里内存泄漏了.

最后加深记忆:在函数传参的时候一定要考虑传引用!!!

 

标签:函数,迭代,实现,学习,vector,析构,拷贝,指针
From: https://www.cnblogs.com/qjwxlj/p/17298979.html

相关文章

  • 【图像检测】基于DCT和arnold实现水印篡改检测附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • mysql学习日记-02 数据表的基本操作
    一、创建和查看数据表创建数据表:前提要选择一个数据库,命令:USE数据库;CREATETABLE表名称(字段名数据类型,...);CREATETABLEuser(u_nameVARCHAR(10),u_ageint(3),u_sexVARCHAR(1)); 查看所有数据表SHOWTABLES; 查看已创建的数据表信息SHOWCREATETAB......
  • 分析以下数字的规律1 1 2 3 5 8 13 21用Python语言编程实现输出,此为斐波那契数列
    方法一:list1=[]#定义一个空列表foriinrange(15):#遍历语句循环15次ifi==0ori==1:#前两个数字的值都是1list1.append(1)#print(list1)else:list1.append(list1[i-1]+list1[i-2])print(list1)方法二:list1=[1,......
  • Windows 系统 多桌面切换的 鼠标实现
    我作为一个开发者正常在日常的工作环境中大多是使用MacOS系统进行开发。也经常会接触到windows系统。我认为,苹果操作系统在使用体验方面非常人性化,比如提供了很多方便的快捷键和快捷指令。对于我来说,最喜欢的功能就是苹果的多桌面,让我可以更加高效地处理任务。虽然Windows操作......
  • 机器学习(五):混合高斯聚类(求聚类标签)+PCA降维(3维降2维)习题
    使用混合高斯模型GMM,计算如下数据点的聚类过程:\(Data=np.array([1,2,6,7])\)均值初值为:\(\mu_1,\mu_2=1,5\)权重初值为:\(w_1,w_2=0.5,0.5\)方差:\(std_1,std_2=1,1\)\(K=2\)10次迭代后数据的聚类标签是多少?采用python代码实现:fromscipyimport......
  • ChatGPT4实现前一天
    目录提出需求代码实现需求分析单元测试等价类划分决策表软件测试作业,用ChatGPT4来帮个小忙,小划水,勿喷勿喷,近期有相关作业的同学看到我的文章,建议修改一下,别撞车了,哈哈哈~提出需求个人输入需求:Java实现键盘输入日期输出前一天,需要考虑润年和非润年,2月是否有29号,大月小月的区......
  • 黄金票据与白银票据学习
    黄金票据与白银票据学习前言票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单。对于kerberos协议的学习可以参考:https://www.bilibili.com/video/av866898346https://www.cnblogs.......
  • 使用ChatGPT快速实现灰度和RGBA图片转换为RGB三通道图片的Python数据清洗demo
    使用ChatGPT快速实现灰度和RGBA图片转换为RGB三通道图片的Python数据清洗demo任务需求Imganet数据集,由于原始图片有灰度图片、彩色图片和RGBA图片,我们的要求是将灰度图片和RGBA图片通过Image.open(img_path+img_name).convert('RGB')转换为RGB三通道图片重新保存起来。要求点......
  • DBGridEH11学习EhLib11的下载和安装(01)
    链接:https://pan.baidu.com/s/1HBw6AEzOXQgS2MIhh-ovhw提取码:iuuw安装  目录里Demos和Hlp文件夹, ......
  • nginx学习笔记
    一、安装安装相关依赖包yum-yinstallgccpcre-develzlibzlib-devel配置./configure--prefix=/usr/local/nginx编译和安装,完成!make&&makeinstall......