From 17ed103dfb32c3552d9933561f9b39f544f2dd07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=93=E8=88=AA?= <1210603696@qq.com> Date: Wed, 22 Oct 2014 19:21:48 +0800 Subject: [PATCH] swap --- TinySTL/Deque.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/TinySTL/Deque.h b/TinySTL/Deque.h index 838108f..843cdf0 100644 --- a/TinySTL/Deque.h +++ b/TinySTL/Deque.h @@ -206,13 +206,13 @@ namespace TinySTL{ delete[] map_; } private: - //T *getANewBuck(){ - // return dataAllocator::allocate(getBuckSize()); - //} + T *getANewBuck(){ + return dataAllocator::allocate(getBuckSize()); + } T** getANewMap(const size_t size){ T **map = new T*[size]; for (int i = 0; i != size; ++i) - map[i] = dataAllocator::allocate(getBuckSize()); + map[i] = getANewBuck(); return map; } size_t getNewMapSize(const size_t size){ @@ -311,5 +311,12 @@ namespace TinySTL{ --end_; dataAllocator::destroy(end_.cur_); } + template + void deque::swap(deque& x){ + TinySTL::swap(beg_, x.beg_); + TinySTL::swap(end_, x.end_); + TinySTL::swap(mapSize_, x.mapSize_); + TinySTL::swap(map_, x.map_); + } } #endif \ No newline at end of file -- GitLab