gpt4 book ai didi

c++ - vector 的 vector 到一维数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:44 28 4
gpt4 key购买 nike

我想知道是否有一种巧妙的方法可以将 vector 中的信息呈现为一维数组。例子:让我们创建一个包含 5x3 int 元素的 vector 的 vector

vector< vector<int>> iVector;
ivector.resize( 5 );
for(i = 0; i < 5; i++){
iVector[i].resize(3);
}

但现在我想将此结构转换为一维数组:

int* myArray = new int[5*3];

所以我可以按如下方式访问我想要的每个元素:

for (i =0;i < 5; i++)
for(j =0; j< 3; j++)
myArray[i*3+j] = ...

我知道我可以将 vector 一个元素一个元素地复制到数组中,但我想知道是否有一种方法可以直接处理 vector 到数组的转换。我也知道 vector 可以作为 iVector[i][j] 处理,但不幸的是它需要是一个数组,因为它将被发送到 GPU 而 GPU 不理解 vector 。

最佳答案

只需使用 std::copy 5 次。

int* ptrArray = myArray;
for (i =0;i < 5; i++) {
std::copy(iVector[i].begin(), iVector[i].end(), ptrArray);
ptrArray += iVector[i].size();
}

关于c++ - vector 的 vector 到一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12953340/

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