c++ vector的插入问题

c++ vector的插入问题,第1张

楼主的这个问题很好,这是C++和java的一个重要的区别。

c++中容器元素都是副本。

就是说,vector中添加元素的时候,是将元素值复制到容器里。就是说容器中存放的是原始元素的副本。被复制的原始值与新容器中的元素各不相关,此后,容器内元素值发生变化时,被复制的原值不会受到影响,反之亦然。

你自己可以写个程序验证下。例如;

vector<string>vs

string s="nihao"

vs.push_back(s)

vs[0]=""

你会发现即使修改了向量中的元素,但是原来的s是没有变化的。

同理插入也是一样的。

这个概念要牢记

容器元素都是副本。不仅对vector如此,对其他容器也是一样的。

一般使用insert方法, 把insert的位置指向结尾位置(因为,insert是插在指定位置前面的)

std::vector<int>src

std::vector<int>dest

dest.insert(dest.end(), src.begin(), src.end())

扩展资料:

vector(向量): C++中的一种数据结构,确切的说是一个类

它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.

用法

1.文件包含:

首先在程序开头处加上#include<vector>以包含所需要的类文件vector

还有一定要加上using namespace std

2.变量声明:

2.1 例:声明一个int向量以替代一维的数组:vector <int>a(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。

2.2 例:用vector代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址。

所以只要声明一个地址的向量即可,即:vector <int *> a.同理想用向量代替三维数组也是一样,vector <int**>a再往上面依此类推.

参考资料:C++_百度百科


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11266993.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存