C++での2次元の可変長の配列
タイトルの通り、可変長の配列を使いたかった。vectorを使えばいいのは分かる。けどどうしたら良かったか分からなかった。 答えは https://img.atcoder.jp/abc133/editorial.pdf で知った。
D次元中に粒子がN個あるとし、 i(i=0,...,N)番目の粒子の dim(dim=0,...,D)次元目の座標を a[i][dim]という変数に代入したい。
標準入力から、NとDが与えられて、その後、標準入力から各座標の値が与えられる時、以下のようにすると、a[i][dim]にその値が入力できる。
#include <vector> int main (){ cin >> N >> D; vector<vector<int> > a(N, vector<int>(D)) for (int i=0; i<N; ++i){ for (int dim=0; dim<D; ++dim){ cin >> a[i][dim]; } } return 0; }