【C++】vector二重配列の容量確保の仕方
二重配列のVectorの容量の確保の仕方
宣言の時にVevtor配列を初期化すると同時に確保するのはいいんですけど,それをコードの途中で,しかも二重配列ってどうすんだ?と思って軽く調べてので記録します.
結論
要するに,for文でresize
メソッドで確保すればいいらしい.(なんかダサい)
#include <iostream> #include <vector> int main() { //ここから std::vector<std::vector<int> > v; v.resize(10); for(int i = 0; i<10; i++){ v[i].resize(10); } //ここまで //出力して確認 for(int i = 0; i<10; i++){ for(int j = 0; j<10; j++){ v[i][j] = 10*i + j; std::cout << v[i][j] <<std::endl; } } }
なお,補足として,上のresize
メソッドにreserve
メソッドを入れても動きます.
しかし,自分の認識ではreserve
はあくまで容量の確保しかしないので,エラーになると思っていたのですが...
この原因はまた今度調べたいと思います.