上一節部落格講述了vector常見介面的使用,今天主要是對vector這些介面進行模擬實現,下面是相關**:
#include#include#includeusing namespace std;
namespace ty
iterator end()
citerator cbegin() const
citerator cend() const
size_t size() const
size_t capacity() const
//建構函式
vector()
:_start(nullptr)
, _finish(nullptr)
, _endofstorage(nullptr)
{}//拷貝建構函式
vector(const vector& v)
_finish = _start + v.size();
_endofstorage = _start + v.capacity();
} vector(int n, const t& value = t())
:_start(nullptr)
, _finish(nullptr)
, _endofstorage(nullptr)
}//賦值過載hansh
vector& operator=(const vector& v)
//析構函式
~vector()
templatevector(inputiterator first, inputiterator last)
}void swap(vector& v)
void reserve(size_t n)
}delete _start;
_start = tmp;
_finish = _start + size;
_endofstorage = _start + n;
}} void resize(size_t n,const t& value = t())
//如果n大於容量,增容
if (n > capacity())
//將size()擴大到n
iterator it = _finish;
iterator _finish = _start + n;
while (it != _finish)
}void pushback(const t& x)
void popback()
t& operator(size_t pos)
iterator insert(iterator pos, const t& x)
iterator end = _finish - 1;
while (end >= pos)
*pos = x;
++_finish;
return pos;
} iterator erase(iterator pos)
--_finish;
return pos;
} private:
iterator _start;//資料存放的開始位置
iterator _finish;//資料存放結束位置的下乙個位置
iterator _endofstorage;//容量的最後乙個位置
};}
模擬實現vector
include include using namespace std template class vector 向vector中存入size個元素 vector const t array,size t size start new t size endofstorage start size ...
vector的模擬實現
最近學習了vector的使用,下面對vctor進行了模擬實現,如有不足請指出 include include include using namespace std template class t class vector 大小 size t size const 容量 size t capaci...
STL模擬實現vector
首先給出所需要實現的函式介面和類的封裝 templateclass vector 接下來給出上面介面的具體的實現,但是其中有 型別萃取,因為需要根據不同的資料型別進行不同的賦值方式,從而提高程式的效率。下面給出所有的實現 和我自己的測試 struct truetype struct falsetyp...