contienus previous commit
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
template<typename T, std::size_t size> class SVector;
|
||||
template<typename T, size_t size> class SVector
|
||||
{
|
||||
private:
|
||||
size_t stored = 0;
|
||||
@ -34,31 +35,32 @@ public:
|
||||
return array[stored];
|
||||
}
|
||||
|
||||
bool empty()
|
||||
bool empty() const
|
||||
{
|
||||
return stored == 0 ? true : false;
|
||||
}
|
||||
|
||||
size_t size();
|
||||
size_t count() const
|
||||
{
|
||||
return stored;
|
||||
}
|
||||
|
||||
constexpr size_t maxSize()
|
||||
constexpr size_t maxSize() const
|
||||
{
|
||||
return std::array::size();
|
||||
return size;
|
||||
}
|
||||
|
||||
size_t remainingCapacity()
|
||||
size_t remainingCapacity() const
|
||||
{
|
||||
return std::array::size() - stored;
|
||||
return size - stored;
|
||||
}
|
||||
|
||||
bool push_back(const T in)
|
||||
{
|
||||
if( remainingCapacity() != 0)
|
||||
{
|
||||
std::array::operator[](stored) = in;
|
||||
array[stored] = in;
|
||||
++stored;
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
@ -67,9 +69,14 @@ public:
|
||||
bool erase(size_t position)
|
||||
{
|
||||
if(position > stored) return false;
|
||||
if constexpr( std::is_class<T> ) array[position].~T();
|
||||
array[position].~T();
|
||||
--stored;
|
||||
for( size_t i = position; i < stored ) array[i] = array[i+1];
|
||||
for( size_t i = position; i < stored; i++ ) array[i] = array[i+1];
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
stored = 0;
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user