_Tp getVal() {return val;}
mllnode<_Tp> * getNext() {return next;}
mllnode<_Tp> * getPrev() {return prev;}
+
MEMALLOC;
private:
mllnode<_Tp> * next;
mllnode<_Tp> * prev;
_Tp val;
+ template<typename T>
friend class ModelList;
};
}
}
- void erase(mllnode<_Tp> * node) {
+ mllnode<_Tp> * erase(mllnode<_Tp> * node) {
if (head == node) {
head = node->next;
} else {
} else {
tail->next->prev = node->prev;
}
-
+ mllnode<_Tp> *next = node->next;
delete node;
+ return next;
}
- mllnode<_Tp> begin() {
+ mllnode<_Tp> * begin() {
return head;
}
- mllnode<_Tp> end() {
+ mllnode<_Tp> * end() {
return tail;
}
sllnode<_Tp> * next;
sllnode<_Tp> * prev;
_Tp val;
+ template<typename T>
friend class SnapList;
};
}
}
- void erase(sllnode<_Tp> * node) {
+ sllnode<_Tp> * erase(sllnode<_Tp> * node) {
if (head == node) {
head = node->next;
} else {
} else {
tail->next->prev = node->prev;
}
-
+
+ sllnode<_Tp> *next = node->next;
delete node;
+ return next;
}
- sllnode<_Tp> begin() {
+ sllnode<_Tp> * begin() {
return head;
}
- sllnode<_Tp> end() {
+ sllnode<_Tp> * end() {
return tail;
}