他の関数で宣言した後、ベクトルの次元を指定したいと思います。
これは、後でベクトルの次元を知るようになるためです。
ループを使用せずにそれを行う方法はありますか。
例えば
std::vector<std::vector<int>>my_vector;
........
........
........
他の関数で、その次元を宣言します。
my_vector(2,5);
そんな感じ....
他の関数で宣言した後、ベクトルの次元を指定したいと思います。
これは、後でベクトルの次元を知るようになるためです。
ループを使用せずにそれを行う方法はありますか。
例えば
std::vector<std::vector<int>>my_vector;
........
........
........
他の関数で、その次元を宣言します。
my_vector(2,5);
そんな感じ....
my_vector.resize(2, std::vector<int>(5));
my_vector = std::vector< std::vector<int> >(2, std::vector<int>(5));
または Xeo が指摘するように C++11 で:
my_vector = {2, std::vector<int>(5)};
サイズを数回変更すると、ぎざぎざのマトリックスになる可能性があるため、このアプローチはサイズ変更よりも優れていると思います。
my_vector.resize(1, std::vector<int>(3));
my_vector.resize(2, std::vector<int>(5));
行 1 は 3 要素、行 2 は 5 要素です。