繁体   English   中英

包含vector或vector的模板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM