From b751d2ad4e7b461a323ddc0c38be35f12b7f8652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=93=E8=88=AA?= <1210603696@qq.com> Date: Mon, 13 Oct 2014 14:42:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AA=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=96=B0=E7=9A=84capacity=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TinySTL/Vector.h | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/TinySTL/Vector.h b/TinySTL/Vector.h index cc7659c..9ec9ee1 100644 --- a/TinySTL/Vector.h +++ b/TinySTL/Vector.h @@ -42,11 +42,6 @@ namespace TinySTL{ viter operator - (const difference_type i)const{ return viter(ptr_ - i); } viter& operator -= (const difference_type i){ ptr_ -= i; return *this; } difference_type operator - (const viter& vit)const{ return (ptr_ - vit.ptr_); } - - friend viter operator + (const viter& vit, const difference_type i); - friend viter operator + (const difference_type i, const viter& vit); - friend viter operator - (const viter& vit, const difference_type i); - friend viter operator - (const difference_type i, const viter& vit); }; template viter::viter(const viter& vit){ @@ -59,22 +54,6 @@ namespace TinySTL{ } return *this; } - template - viter operator + (const viter& vit, const typename viter::difference_type i){ - return vit + i; - } - template - viter operator + (const typename viter::difference_type i, const viter& vit){ - return vit + i; - } - template - viter operator - (const viter& vit, const typename viter::difference_type i){ - return vit + i; - } - template - viter operator - (const typename viter::difference_type i, const viter& vit){ - return vit + i; - } }// end of anonymous namespace //********* vector ************* @@ -209,8 +188,8 @@ namespace TinySTL{ void reallocateAndFillN(iterator position, const size_type& n, const value_type& val); size_type getNewCapacity(size_type len)const{ size_type oldCapacity = endOfStorage_ - start_; - auto res = std::max(oldCapacity, len); - size_type newCapacity = (oldCapacity != 0 ? (oldCapacity + res) : 1); + auto res = TinySTL::max(oldCapacity, len); + size_type newCapacity = (oldCapacity != 0 ? (oldCapacity + res) : len); return newCapacity; } public: @@ -356,7 +335,7 @@ namespace TinySTL{ difference_type locationNeed = last - first; if (locationLeft >= locationNeed){ - auto tempPtr = end() - 1; + iterator tempPtr = end() - 1; for (; tempPtr - position >= 0; --tempPtr){//move the [position, finish_) back *(tempPtr + locationNeed) = *tempPtr; }