我想知道是否有一种巧妙的方法可以将向量中的信息呈现为一维数组。示例:让我们创建一个由 5x3 int 元素组成的向量
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] = ...
我知道我可以将向量逐个元素复制到数组中,但我想知道是否有一种方法可以直接解决向量到数组的转换。我也知道向量可以被称为iVector[i][j]
,但不幸的是它需要是一个数组,因为它将被发送到 GPU 并且 GPU 不理解向量。