我正在做一個在學校中的任務,我們應該爲我們自己的List類創建一個構造函數,它將初始化列表作爲參數。初始化列表到構造函數
這就是我希望能夠做到:
List ourList {1, 2, 3};
這是我到目前爲止有:
List::List(std::initializer_list<int> il)
{
head_ = copy(il.begin(), il.end());
}
List_Node* List::copy(std::initializer_list<int>::iterator begin,
std::initializer_list<int>::iterator end)
{
if(begin == end)
return nullptr;
List_Node* new_list = new List_Node(*begin);
List_Node* node = copy(begin++, end);
new_list->next_ = node;
return new_list;
}
在我的愚見,這應該工作的偉大。但是,當我嘗試初始化時(List list {1,2,3};
),我得到一個seg-fault。有人能解釋我在這裏做錯了嗎?
你保持了複製相同的元素,並且,你想'++ begin'不'開始++' –
爲什麼要用復發順序任務?它只會讓這個bug更難以發現。 – luk32