64,670
社区成员
发帖
与我相关
我的任务
分享
typedef vector<int> VB;
struct MM
{
VB vec;
int x;
}
typedef vector<MM> VA;
int main()
{
VA vmm;
// 确知vmm最多只有10个元素,vmm.vec最多只有20个元素。
怎样一次性给vmm reserve足够的空间?既分配21*10个存储单元
}
#include <iostream>
#include <vector>
using namespace std;
class CTest
{
public:
vector<int> vecInt;
int m_int;
CTest()
{
vecInt.reserve(20);
}
CTest(const CTest& ct)
{
vecInt.reserve(20);
}
};
int main()
{
vector<CTest> vecObj;
vecObj.reserve(10);
CTest ctObj;
vecObj.push_back(ctObj);
cout<<vecObj.at(0).vecInt.capacity()<<endl;
return 0;
}
vmm.reserve(10);
vmm.push_back(MM <20>());// 构造函数MM()被调用
cout<<vmm.at(0).vec.capacity()<<endl; // 输出0 。这是为什么?
另外对vector < MM <20> >不是很懂,请问lightnut能不能给我解释一下。谢谢!
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
class CTest
{
vector<int> vecInt;
int m_int;
public:
CTest()
{
vecInt.reserve(20);
}
};
int main()
{
vector<CTest> vecObj;
vecObj.reserve(10);
return 0;
}
typedef vector<int> VB;
struct MM
{
VB vec;
int x;
}
typedef vector<MM> VA;
int main()
{
VA vmm;
vmm.vec.reserve(20);
vmm.reserve(10);
// 确知vmm最多只有10个元素,vmm.vec最多只有20个元素。
怎样一次性给vmm reserve足够的空间?既分配21*10个存储单元
}