vector的模擬實現

2021-09-12 01:22:52 字數 1690 閱讀 7636

上一節部落格講述了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...