一定是哪里没有delete,一定
可能是new后,因为输入不符合条件,而没有使用,却没有delete(insert,push…)
最可能是,在一些应该具有删除功能的函数中没有完全delete(erase,pop,clear,~class)
void list::erase(int position) {
if (position < 0 || position >= _size) {
return;
}
listPointer temp = head;
int count = 0;
while (position > count) {
temp = temp->next;
++count;
}
if (temp == NULL) {
std::cout << "error" << std::endl;
}
listPointer pre = temp->prev;
listPointer nex = temp->next;
if (pre != NULL) {
pre->next = nex;
} else {
head = nex;
}
if (nex != NULL) {
nex->prev = pre;
} else {
tail = pre;
}
--_size;
delete temp;//这里忘了
}