4

QVector値を2 次元配列として宣言、初期化、および割り当てるにはどうすればよいですか?

4

2 に答える 2

9

ネストされたベクトルを回避するために、少なくともx座標の上限である(一定の)「幅」がある場合は、2Dインデックススペースを1Dインデックススペースにマップできます。

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 に答える
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...
于 2012-10-08T07:11:56.187 に答える