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