continued vector
This commit is contained in:
parent
c4b3d8ac5f
commit
b8b078d327
3 changed files with 48 additions and 20 deletions
|
@ -1,5 +1,4 @@
|
|||
#pragma once
|
||||
|
||||
#define DELETE_POINTER(pPointer) \
|
||||
if (pPointer != nullptr)\
|
||||
{\
|
||||
|
|
|
@ -7,33 +7,33 @@ template <class T>
|
|||
class LSVector
|
||||
{
|
||||
public:
|
||||
LSVector(size_t zSize = 1)
|
||||
LSVector(size_t zSize = 0)
|
||||
{
|
||||
m_pData = new T[zSize];
|
||||
m_zSize = zSize;
|
||||
m_zCapacity = zSize;
|
||||
}
|
||||
|
||||
~LSVector()
|
||||
{
|
||||
|
||||
Clear();
|
||||
}
|
||||
|
||||
T& PushBack(T obj)
|
||||
T& PushBack(T oObj)
|
||||
{
|
||||
return Insert(oObj, m_zSize);
|
||||
}
|
||||
|
||||
T& PopBack()
|
||||
void PopBack()
|
||||
{
|
||||
--m_zSize;
|
||||
}
|
||||
|
||||
T& Insert(const size_t zPos)
|
||||
T& Insert(T oObj, const size_t zPos)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
T& Remove(const size_t zPos)
|
||||
{
|
||||
|
||||
m_pData[zPos] = oObj;
|
||||
m_zSize++;
|
||||
return m_pData[zPos];
|
||||
}
|
||||
|
||||
T& At(const size_t zPos)
|
||||
|
@ -41,21 +41,35 @@ public:
|
|||
return m_pData[zPos];
|
||||
}
|
||||
|
||||
void Resize(const size_t zNewSize)
|
||||
{
|
||||
T* pOld = m_pData;
|
||||
m_pData = new T[zNewSize];
|
||||
|
||||
memmove_s(m_pData, zNewSize, pOld, m_zSize);
|
||||
m_zSize = zNewSize;
|
||||
m_zCapacity = zNewSize;
|
||||
|
||||
DELETE_ARRAY(pOld)
|
||||
}
|
||||
|
||||
void Reserve(const size_t zSize)
|
||||
{
|
||||
T* pOld = m_pData;
|
||||
m_pData = new T[zSize];
|
||||
m_pData = (T*)malloc(zSize * sizeof(T));
|
||||
|
||||
memmove_s(m_pData, zSize, pOld, m_zSize);
|
||||
m_zSize = zSize;
|
||||
m_zCapacity = zSize;
|
||||
|
||||
DELETE_ARRAY(pOld);
|
||||
DELETE_ARRAY(pOld)
|
||||
}
|
||||
|
||||
void Clear()
|
||||
{
|
||||
DELETE_ARRAY(m_pData)
|
||||
m_zSize = 0;
|
||||
m_zCapacity = 0;
|
||||
}
|
||||
|
||||
size_t Size() const
|
||||
|
@ -80,12 +94,12 @@ public:
|
|||
|
||||
LSVector& operator[](const size_t _Pos)
|
||||
{
|
||||
|
||||
test.reserve(5);
|
||||
test.resize(5);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
std::vector<int> s;
|
||||
std::vector<int> test;
|
||||
T* m_pData = nullptr;
|
||||
size_t m_zSize = 0;
|
||||
size_t m_zCapacity = 0;
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue