各サブベクトルが事前定義された容量を持つが初期化されないように、ベクトルのベクトルを作成したいと思います。
これが私がやりたいことをしないコードです:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> tVec;
tVec.reserve( 5 );
cout<<"tVec Size: "<<tVec.size()<<", capacity: "<<tVec.capacity()<<endl;
vector< vector<int> > tmpVecVec( 2, tVec );
cout<<"tmpVecVec[0] Size: "<<tmpVecVec[0].size()<<", capacity: "<<tmpVecVec[0].capacity()<<endl;
cout<<"tmpVecVec[1] Size: "<<tmpVecVec[1].size()<<", capacity: "<<tmpVecVec[0].capacity()<<endl;
}
上記の出力は次のとおりです。
tVec Size: 0, capacity: 5
tmpVecVec[0] Size: 0, capacity: 0
tmpVecVec[1] Size: 0, capacity: 0
次の結果を得るにはどうすればよいですか?
tVec Size: 0, capacity: 5
tmpVecVec[0] Size: 0, capacity: 5
tmpVecVec[1] Size: 0, capacity: 5
もちろん、予約をサイズ変更に置き換えるか、tVecのコンストラクターでサイズ5を提供すると、これを行うことができます。しかし、これらの方法を使用せずにこれを行うことはできますか?
作業コードへのリンク:http://ideone.com/PBXeP