在继续这个主题Variadic template heterogeneous container,我想问以下问题。假设我们有两个动态数组成员的类。现在假设有这些类的一系列对象,这些对象被封装在异构容器中。在这个序列中,一个数组 - mebers是“输出”向量,另一个数组成员是“输入”向量,它是指向前一个对象的适当输出数组的指针。为输出矢量异构序列生成器
//Classes, objects which are members of the sequence
template<int NumberElements>
struct A
{
A() : output(new float[NumberElements]){}//allocate output
~A(){delete[] output;}
float *input;//input vector - pointer to output vector from preceding object of sequence
float *output;// output vector (size - NumberElements) of current member of sequence
};
template<int NumberElements>
struct B
{
B() : output(new float[NumberElements]){}//allocate output
~B(){delete[] output;}
float *input;
float *output;
};
template<int NumberElements>
struct C
{
C() : output(new float[NumberElements]){}//allocate output
~C(){delete[] output;}
float *input;
float *output;
};
//Container
template<typename...Arg>
struct HeterogenousContainer
{
HeterogenousContainer();//Do something to setup the sequence
std::tuple<Arg...> elements;
};
我怎样才能正确地分配存储器(经由新/ malloc的),并设置输入指针输出向量前述:该序列被实现为可变参数模板类?例如,我写下一个代码:
HeterogenousContainer<A<5>, B<7>, C<9>> sequence;
我想要输入从序列的第一成员为nullptr,输入从第二 - 第一自等点输出如何正确实施?
你为什么要构建链表是否可以提供对其元素的各种(包括随机)访问? – dyp
假设对元素的访问将是sequental - 在上面的示例中强烈地从A到C – gorill