在繼續這個主題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