단일 목록 복사 생성자 작업을 마쳤습니다. 이제 이중 복사 복사 생성자로 향하고 있습니다. 아무도 그것이 단일 목록 생성자에서 얼마나 다른지 말해 줄 수 있습니다. 이중 연결 목록 복사 생성자에 대해 새로 시작하거나 단일 목록 복사 생성자를 복사하는 사이에 충돌이 발생합니다. 이 문제를 어떻게 해결해야합니까? 도움이된다면이중 목록 복사 생성자 : 단일 목록 복사 생성자와 다른 점은 무엇입니까?
, 여기 내 단일 연결 목록에서 내 복사 생성자입니다 :
List(const List ©ing) : head(NULL)
{
Node* cur = copying.head;
int size = copying.size();
Node* end = NULL;
for(int q = 0; q < size; q++)
{
Node* n = new Node;
n->value = cur->value;
if (head == NULL)
{
head = n;
end = head;
}
else
{
end->next = n;
end = n;
}
cur = cur->next;
}
end->next = NULL;
}
모든 및 모든 입력을 환영합니다. 모두 감사합니다 :-)
빈 목록에서 복사하는 경우 단독 연결 목록 복사 생성자가 폭발합니다. 연결 목록의 첫 번째 규칙 : 절대로 특별한 경우는 없습니다. '(Node * cur = copying.head; cur; cur = cur-next) {Node * n = 새로운 노드 (cur-> value); * target = n; target = & (n-> next); } * target = nullptr; ' –
정확히 "날려 버릴"것이 @MartinBonner를 의미합니까? 사실 C++ 프로그래밍에 익숙하지 않습니다. –
@PeterG 그 링크는 복사 생성자에 관한 것이 아닙니다. 나는 그것을 검사했지만 이중 연결리스트의 복사 생성자에 관한 내 쿼리에 응답하지 않았습니다. –