0

ベクトルのベクトルを初期化する方法は?

以下のコードでアプリケーションがクラッシュします。

#include <iostream>
#include <vector>

int main()
{
    std::vector< std::vector< unsigned short > > table;
    for(unsigned short a = 0; a < 13; a++){
        for(unsigned short b = 0; b < 4; b++){
            table[a][b] = 50;
        }
    }
}
4

2 に答える 2

2

これにより、サイズ 4 のベクトルからなるサイズ 13 のベクトルが作成され、各要素が 50 に設定されます。

using std::vector; // to make example shorter
vector<vector<unsigned short>> table(13, vector<unsigned short>(4, 50));
于 2013-11-12T22:01:56.857 に答える
0

最初にサイズを変更する必要があります。

std::vector<std::vector<unsigned short > > table;
table.resize(13);
for(unsigned short a = 0; a < 13; a++){
    table[a].resize(4);
    for(unsigned short b = 0; b < 4; b++){
        table[a][b] = 50;
    }
}
于 2013-11-12T22:01:44.807 に答える