Я пытаюсь сделать связанный список внутри другой, вот мой кодC++ связанный список в другой один
template<typename T>
class List {
private:
int length;
class Node {
public:
T data;
Node* next;
} *head;
public:
List();
~List();
void insert(T item);
void remove(T item);
void empty();
T* getAll();
int count() const;
};
template<typename T>
void List<T>::insert(T item)
{
if (head == NULL)
{
head = new Node();
head->data = item;
head->next = NULL;
length = 1;
return;
}
Node* p = new Node();
p->data = item;
p->next = head;
head = p;
++length;
}
struct Remainder {
Date dt;
List<int> notes;
};
void getDayEvents(Date dt, List<Remainder> l)
{
Remainder* arr = new Remainder[l.count()];
arr = l.getAll();
for (int i = 0; i < l.count(); i++)
{
if (arr[i].dt.day == dt.day && arr[i].dt.month == dt.month && arr[i].dt.year == dt.year)
{
int* nArr = new int[arr[i].notes.count()];
nArr = arr[i].notes.getAll();
for (int j = 0; j < arr[i].notes.count(); j++)
{
cout << nArr[j] << endl;
}
}
}
}
int _tmain() {
Date dt1, dt2;
dt1.setDate(17, 7, 2015);
dt2.setDate(5, 11, 2015);
Remainder r1, r2;
r1.dt = dt1;
r1.notes.insert(1);
r1.notes.insert(2);
r2.dt = dt2;
r2.notes.insert(5);
List<Remainder> l;
l.insert(r1);
l.insert(r2);
getDayEvents(dt1, l);
//----------------------------------------------------------
int pause;
cin >> pause;
return 0;
}
только тогда, когда вставка r1 или r2 в списке, данные внутри списков нот внутри каждый остаток просто исчез или уничтожен
Я не знаю почему? Где ошибка?
Вы можете показать больше вашего источника; Дата является либо классом, либо структурой и не видит никакой реализации, а для вас класса List вы также не показываете какую-либо свою реализацию. Трудно сказать, где может быть ваша ошибка. –
Я добавил реализацию метода insert в списке и объявление класса даты. Вам нужна дополнительная информация? .. спасибо за помощь :) –
Я отредактировал ваше оригинальное сообщение, чтобы улучшить форматирование для лучшей читаемости. Только видимый для меня, пока он не одобрен экспертной оценкой. –