2013-09-26 2 views
1

학교 과제의 목록 클래스를 "다시 제작"하려고합니다. 그러나 initializer 목록 생성자를 작동시키는 방법에 대한 단서가 없습니다. 내가 지금까지 가지고 :사용자 정의 목록 클래스의 초기화 프로그램 목록 생성자

ListNodes List.h에서

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

List(std::initializer_list<int>); 

나는 거라고

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

List.cc에서 복사 기능을 수행하는 방법을 알고 있습니다. 나는 std :: copy를 시도했지만 segfault를 제공한다.

누구든지 무엇을 해야할지 알고 계십니까?

+1

/시작 고전과 initializer_list을 축복하는 반복 할 수, 당신은 insert''호출해야합니다. 또한,'insert' 함수를 작성해야합니다. –

+0

예.하지만이 할당의 일부는 재귀 적으로 처리 할 수있는 모든 항목을 재귀 적으로 처리해야한다는 것입니다. 재귀 적으로 삽입하는 방법에 대한 조언이 있습니까? –

답변

1

page에 따르면, 각 목록 요소에 대해 최종

+0

예, 재귀 적으로 어떻게합니까? 'copy (il.begin(), il.end()) '를 호출함으로써? 어떻게 보일까요? 'ListNode * copy (initializer_list :: iterator begin, initializer_list :: iterator end)'? –