continued vector

This commit is contained in:
DirtyDuckEUW 2023-02-22 01:00:25 +01:00
parent c4b3d8ac5f
commit b8b078d327
3 changed files with 48 additions and 20 deletions

View file

@ -1,5 +1,4 @@
#pragma once
#define DELETE_POINTER(pPointer) \
if (pPointer != nullptr)\
{\

View file

@ -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