如何使用指向第一个元素的指针分配C++数组?

jEs*_*Esp 1 c++ arrays pointers vector

我很抱歉我对C++还很新,所以请耐心等待.

作为我项目中不可更改的约束的一部分,我必须将Vector转换为数组.在我寻找解决方案时,我反复遇到过像这样的答案.

据我所知,该解决方案给你一个指针,指向向量的第一个元素 - 和由于载体是保证在存储器中连续然后可以设置数组以指向存储器位置(或类似的东西).

但问题是,我在C++中究竟如何做到的?答案似乎表明它是微不足道的,但我找不到如何做到这一点.

我尝试过这种性质的东西,但它们不起作用....

std::vector<double> v;
double* a = &v[0];
double myArray[100];
&myArray[0] = a;
Run Code Online (Sandbox Code Playgroud)

给定指向序列中第一个元素的指针,然后如何使用该指针"填充"数组?此外,我是否需要担心尺寸差异/走出界限问题?另外,我是否可以反向执行此操作('填充'带有指向数组第一个元素的指针的向量)?

Bri*_*ian 5

您不能使用指向矢量第一个元素的指针将元素插入到矢量中.向量唯一拥有其内容,因此必须允许您仅使用自己的接口更改其大小,否则无法跟踪其拥有的元素数量.

你可以这样做:

std::vector<double> v(N); // N elements initialized to 0.0
double* a = v.data();
do_something(a, N); // tell the function to write N elements
Run Code Online (Sandbox Code Playgroud)