我想创建向量的向量,使每个子向量具有预定义的容量但未初始化。
这是不做我想做的代码:
#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
当然,如果我用 resize 替换 reserve 或在 tVec 的构造函数中提供 size 5,我可以这样做。但是,我可以在不使用这些方法的情况下做到这一点吗?
链接到工作代码:http: //ideone.com/PBXeP