How to Convert vector to array in C++

方法一:
  For C++ 11, vector.data() will do the trick.

方法二:

There is a fairly simply trick to do so, since the spec now guarantees vectors store their elements contiguously.

意思是:由于vector中的元素在内存中是连续存储的,因此只需取第一个元素的地址,就是“元素数组”的首地址。使用方法的伪代码如下:

std::vector<double> vec;
####使用一####
double *a = &v[0]; //a指向vec中的第一个元素的地址,这种共用内存的方法会有内存泄漏的风险,所以使用时务必小心。
####使用二####
double *b = new double[vec.size()];
memcpy(b, &vec[0], vec.size() * sizeof(double)); //拷贝一份副本
double *c = new double[vec.size()];
memcpy(c, vec.data(), vec.size()*sizeof(double)); //同样也是拷贝一份副本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值