void DLinkedList::removeName(const Elem& name) {
DNode * node = header;
if (node != NULL) {
do {
if(node->elem == name){
node->prev->next = node->next;
node->next->prev = node->prev;
delete node;
}
node = node->next;
} while (node != header); // Stop when we reach the head again.
}
}
私はそれをデバッガーに投げ込み、if(node->elem == name) を約 3 回通過した後、よくわからない理由でクラッシュしました。