C++ 包含向量或向量的向量的模板

C++ 包含向量或向量的向量的模板,c++,templates,vector,C++,Templates,Vector,我已经创建了一个模板来处理对象向量 template <class T> class ensemble{ public: std::vector<T> list; // Constructor ensemble(int i) { int j; T *Tptr; list.reserve(i); for (j = 0; j < i; j++) { Tptr = new T; list.push_back(*Tptr); }

我已经创建了一个模板来处理对象向量

template <class T>
class ensemble{
public:
 std::vector<T> list;

// Constructor
 ensemble(int i) {
  int j;
  T   *Tptr;

  list.reserve(i);

  for (j = 0; j < i; j++) {
   Tptr = new T;
   list.push_back(*Tptr);
  }
 };
};
大体上,我可以用集成test100创建一个对象,它是T类对象的向量,它将生成包含100个T类对象的对象测试,存储在向量中

现在,我想把它概括为一个模板,它可以创建如上所述的对象向量或对象的二维数组,即向量向量。你知道如何使用相同的模板吗

非常感谢!
Xtof

您既不需要调用reserve,也不需要在构造函数中执行循环。通过调用集合初始值设定项列表中的正确构造函数,可以一次性完成所有操作:

ensamble(int i)
    : list(i, T())
{}
这将导致创建的向量包含默认构造的项

至于使用向量创建集合实例,就像对任何其他类型执行此操作一样:

// Creates an instance containing 100 integers
ensemble<int> e1(100);

// Create an instance containing 100 vectors of integer
ensemble<std::vector<int>> e2(100)

有内存泄漏,每新一个。C++不是java。下面可能会帮助你:谢谢构造函数的建议。很高兴知道。否则,你创建向量向量的方式不是我想要的。实际上,第二维度缺失了。我更喜欢使用模板来创建包含向量向量的类。蛮力是为向量创建一个类,就像我所做的那样,另一个类包含向量向量。但是我想把所有的都放在一节课上。也许用模板专门化?