如何将QVector
声明,初始化和赋值为二维数组?
答案 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)] = ...;