diff --git a/TinySTL/CircularBuffer.h b/TinySTL/CircularBuffer.h index 8992b15..da5cf06 100644 --- a/TinySTL/CircularBuffer.h +++ b/TinySTL/CircularBuffer.h @@ -190,11 +190,18 @@ namespace TinySTL{ //************²åÈ룬ɾ³ýÏà¹Ø*********************** template void circular_buffer::push(const T& val){ - if (full()) + /*if (full()) throw; - indexOfTail = nextIndex(indexOfTail); - dataAllocator::construct(start_ + indexOfTail, val); - ++size_; + */ + if (full()){ + indexOfTail = nextIndex(indexOfTail); + dataAllocator::construct(start_ + indexOfTail, val); + indexOfHead = nextIndex(indexOfHead); + }else{ + indexOfTail = nextIndex(indexOfTail); + dataAllocator::construct(start_ + indexOfTail, val); + ++size_; + } } template void circular_buffer::pop(){