4

如何将 aQVector作为二维数组声明、初始化和赋值?

4

2 回答 2

9

与 a 相同的方式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...
于 2012-10-08T07:11:56.187 回答
9

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

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

然后用它来索引一个大小的向量width * height

QVector<...> vector(width * height);
vector[index(5, 3)] = ...;
于 2012-10-08T09:55:39.633 回答