当前位置:   article > 正文

std::vector 拷贝、追加、嵌套访问_std::vector拷贝

std::vector拷贝

stl系列文章目录

前言

std::vector 拷贝、追加、嵌套访问

一、 拷贝

1.利用拷贝赋值操作符(深复制),注意会使左值先清空,然后把右值再复制到左值

vector<int> rightArray{8,3,5,2,6,4,1};
vector<int> leftArray{9,1,2,3};
leftArray= rightArray;
  • 1
  • 2
  • 3

复制前:
在这里插入图片描述
赋值后:
原先:leftArray 中的 9,1,2,3先被清空了,随后把rightArray{ 8,3,5,2,6,4,1 };复制到leftArray中
在这里插入图片描述
2.利用拷贝构造(深复制)

vector<int> rightArray{ 8,3,5,2,6,4,1 };
	vector<int> leftArray(rightArray);
  • 1
  • 2

在这里插入图片描述
3. 利用swap()函数(交换两个vector)
leftArray和rightArray会各自先清空原有的值,然后再互相交换值
交换前
在这里插入图片描述
交换后
在这里插入图片描述
4.利用assign()函数(清空并深复制)
rightArray会先清空,然后再把leftArray复制到rightArray
赋值前
在这里插入图片描述
赋值后:
在这里插入图片描述
4. 内存拷贝(深拷贝)

memmove前
在这里插入图片描述

memmove后:rightArray整个清空,包括多余的{4,1也将清空,leftArray{ 9,0,7,7,0 };将保留
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/452727
推荐阅读
相关标签
  

闽ICP备14008679号