gpt4 book ai didi

c++ - 如何将 vector 转换为数组并访问它

转载 作者:行者123 更新时间:2023-11-30 04:09:24 27 4
gpt4 key购买 nike

我需要将 std::vector 转换为数组。我尝试使用这个简单的代码:

#include <vector>
#include <iostream>

using namespace std;

int main(){

vector<double> v;
double* a = &v[0];


for (int i=0; i<10; i++)
v.push_back(i);

cout<<"Value -V- 9: "<<v[9]<<endl;
cout<<"Value -a- 9: "<<a[9]<<endl; //Gives me segmentation fault error

return 0;
}

我阅读了另一个讨论,以这种方式将 vector 转换为数组,但现在我还需要访问我的数组的单个元素(这样编译器给我错误的段错误)。我是 c++ 的新手,也许这种方法是完全错误的。谁能帮我解决这个问题?

最佳答案

首先,您应该了解 std::vector 的工作原理:它是一个自扩展数组,可以在需要时重新分配其内部存储空间。获取指向内部数组的指针的正确方法是调用 std::vector::data 成员(仅在 C++11 中可用):

double * a = v.data();

请注意,此指针仅在您修改 vector 之前有效。为了以防万一,这里的“转换”并不意味着真正的转换, vector 没有被修改,也没有创建新的数组。仅接收到存储在 std::vector 中的数据的指针。

关于c++ - 如何将 vector 转换为数组并访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21238831/

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