完成reverse
This commit is contained in:
@@ -149,7 +149,7 @@ namespace TinySTL{
|
|||||||
//void sort();
|
//void sort();
|
||||||
//template <class Compare>
|
//template <class Compare>
|
||||||
//void sort(Compare comp);
|
//void sort(Compare comp);
|
||||||
//void reverse();
|
void reverse();
|
||||||
private:
|
private:
|
||||||
nodePtr newNode(const T& val = T()){
|
nodePtr newNode(const T& val = T()){
|
||||||
nodePtr res = nodeAllocator::allocate();
|
nodePtr res = nodeAllocator::allocate();
|
||||||
@@ -250,6 +250,21 @@ namespace TinySTL{
|
|||||||
void List<T>::clear(){
|
void List<T>::clear(){
|
||||||
erase(begin(), end());
|
erase(begin(), end());
|
||||||
}
|
}
|
||||||
|
template<class T>
|
||||||
|
void List<T>::reverse(){//<2F><><EFBFBD><EFBFBD>β<EFBFBD>巨
|
||||||
|
if (empty() || size() == 1) return;
|
||||||
|
auto curNode = head.p;
|
||||||
|
head.p = tail.p->prev;
|
||||||
|
head.p->prev = nullptr;
|
||||||
|
do{
|
||||||
|
auto nextNode = curNode->next;
|
||||||
|
curNode->next = head.p->next;
|
||||||
|
head.p->next->prev = curNode;
|
||||||
|
head.p->next = curNode;
|
||||||
|
curNode->prev = head.p;
|
||||||
|
curNode = nextNode;
|
||||||
|
} while (curNode != head.p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Reference in New Issue
Block a user