[英]template containing either vector or vector of vectors
我已经创建了一个模板来与对象向量一起玩。
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);
}
};
};
因此,在main()中,我可以使用ensemble<T> test(100)
创建一个对象,该对象是T类对象的向量,该对象将生成包含100个T类对象的对象测试,并存储在向量中。
现在,我想将其概括为一个模板,该模板可以创建对象的向量(如上)或对象的二维数组,即向量的向量。 知道如何使用相同的模板吗?
提前谢谢了 ! Xtof
您既不需要调用reserve
也不需要构造函数中的循环。 通过在ensemble
初始化器列表中调用正确的构造函数,可以一次性完成所有操作:
ensamble(int i)
: list(i, T())
{}
这将导致创建的向量包含i
默认构造的项。
作为创建的实例ensemble
使用载体,它像做其他任何类型:
// Creates an instance containing 100 integers
ensemble<int> e1(100);
// Create an instance containing 100 vectors of integer
ensemble<std::vector<int>> e2(100)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.