如何使用QVector作为二维数组?

时间:2012-10-08 07:08:26

标签: qt vector multidimensional-array

如何将QVector声明,初始化和赋值为二维数组?

2 个答案:

答案 0 :(得分:9)

std::vector

相同
QVector< QVector< int > > twoDArray;      // Empty.
QVector< QVector< int > > twoDArray( 2 ); // Contains two int arrays.
twoDArray[0].resize(4);
twoDArray[0][2] = 4;  // Assign to the third element of the first array.
...
etc...

答案 1 :(得分:9)

为避免嵌套向量,您可以将2D索引空间映射到1D索引空间,至少如果您有一些(常量)“宽度”是x坐标的上限:

int index(int x, int y) {
    return x + width * y;
}

然后使用它来索引width * height大小:

的向量
QVector<...> vector(width * height);
vector[index(5, 3)] = ...;