gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:46:45 25 4
gpt4 key购买 nike

很抱歉,我对 C++ 还是很陌生,所以感谢您的耐心等待。

作为项目中不可更改约束的一部分,我必须将 Vector 转换为 Array。在寻找解决方案的过程中,我反复遇到类似 this one 的答案。 .

据我所知,该解决方案为您提供了指向 vector 中第一个元素的指针——并且由于保证 vector 在内存中是连续的,因此您可以将数组设置为指向该内存位置(或类似的位置) ).

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

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

std::vector<double> v;
double* a = &v[0];
double myArray[100];
&myArray[0] = a;

给定序列中第一个元素的指针,然后如何使用该指针“填充”数组?此外,我是否必须担心大小差异/越界问题?另外,我是否也可以反向执行此操作(使用指向数组第一个元素的指针“填充”一个 vector )?

最佳答案

您不能使用指向 vector 第一个元素的指针将元素插入到 vector 中。 vector 唯一拥有其内容,因此必须允许您仅使用其自己的界面更改其大小,否则它无法跟踪它拥有多少元素。

你可以这样做:

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

关于c++ - 如何使用指向第一个元素的指针分配 C++ 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37334320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com