c++中vector和数组中同类型数据是如何互换的?

来源:百度知道 编辑:UC知道 时间:2024/06/25 10:08:19
如果有一个等大小的数组和vector他们之间的数据是怎么交换?
请给个例子,谢谢

很简单。vector在内部是连续存储的。
如果数组大小相同的话,
从vector->数组
你先得到vector[0]的地址,有的Vector实现有data(),也可以,然后用memcpy拷贝size()*sizeof(int)到数组中即可。

从数组到vector.利用vector的构造函数或者是assign成员函数构造即可。参数是数组的起始地址和最后一个其地址+_countof(array);

#include <algorithm>
int a[10]={0,1,2,3,4,5,6,7,8,9};
vector<int> v(10, 5); // 用10个5初始化向量
v.swap(a); // 方法一
swap(v,a); // 方法二