Я нахожусь в процессе создания собственного связанного списка.Я пытаюсь создать перегруженный конструктор моего связанного списка, который использует два node_iterator, которые указывают на начало и конец другого связанного списка.
перегруженный конструктор списка:
template <typename T>
list<T>::list(node_iterator<T> front, node_iterator<T> back)
{
unsigned temp;
this->head = front.get_current();
while(front != back)
{
++temp;
++front;
}
this->tail = back.get_current();
this->used = temp;
}
Выше head
и tail
* node<T>*
для моих узлов в списке.front
и back
node_iterator, которые я создал.Метод get_current()
возвращает node<T>*
текущему узлу, на который указывает мой класс node_iterator
.Я проверил перегруженные операторы ++
и !=
в своем классе node_iterator
, и они работают.Однако, когда я пытаюсь создать мой список списков с помощью вышеуказанного конструктора, я получаю следующую ошибку:
*** glibc detected *** ./a.out: munmap_chunk(): invalid pointer: 0xbf91b1a4 ***
Какие-нибудь советы, как мне это исправить или сделать вышеперечисленное лучше?Пожалуйста, дайте мне знать, если вам нужно увидеть больше.