Vector added

This commit is contained in:
2019-04-28 19:48:36 +02:00
parent 3c3ae8232d
commit 3dbc5c211a

View File

@@ -0,0 +1,38 @@
#include <cstddef>
#include <cstdlib>
#include <stdexcept>
template<class T>
class Vector
{
protected:
T * data;
std::size_t size;
public:
void Resize(std::size_t const newSize)
{
void * result = std::realloc(data, newSize);
if(result == nullptr)
{
throw std::runtime_error("Cannot allocate the requested size of memory.");
}
size = newSize;
data = reinterpret_cast<T *>(result);
}
T & operator[](std::size_t const index)
{
if(index >= size)
{
throw std::out_of_range("Index is greater or equal to size.");
}
return data[index];
}
std::size_t GetSize() const
{
return size;
}
};