2013-09-26 32 views
1

我正試圖「重新制作」學校作業的列表類。但是,我沒有得到關於如何獲得初始化列表構造函數的線索。我至今:自定義列表類的初始化程序列表構造函數

的ListNodes

struct ListNode 
{ 
    ListNode(int value, ListNode* tail = nullptr) : data(value), next(tail) {} 
    int  data; 
    ListNode* next; 
}; 

在List.h在List.cc

List(std::initializer_list<int>); 

List::List(std::initializer_list<int> il) 
{ 
    head_ = copy(il, il.size()); //some form of recursive copy-function 
} 

I D ont知道如何繼續使用複製功能。我試過std :: copy,但這只是給了我一個段錯誤。

任何人都知道該怎麼辦?

+1

對於每個列表元素,你應該叫'insert'。另外,你必須編寫一個'insert'函數。 –

+0

是的,但這項任務的一部分是遞歸地處理所有可遞歸處理的內容。你有什麼建議,如何遞歸插入? –

回答

1

根據這一page,您可以遍歷throught與經典的initializer_list開始/結束

+0

是的,但我怎麼遞歸呢?通過調用copy(il.begin(),il.end())'?那該怎麼看? 'ListNode * copy(initializer_list :: iterator begin,initializer_list :: iterator end)'? –

相關問題