2#include "../Primitives.hpp"
12 typedef typename std::vector<T>::iterator iterator;
13 typedef typename std::vector<T>::const_iterator const_iterator;
18 Array(std::initializer_list<T> list)
26 void Add(
const T&
object) { data.push_back(
object); }
27 void Add(T&&
object) { data.push_back(
object); }
31 void Insert(
const T&
object,
uint32 index) { data.insert(
object, index); }
32 void Insert(T&&
object,
uint32 index) { data.insert(
object, index); }
36 data.erase(
begin() + index);
41 data.erase(
begin() + index, amount);
47 if (
id != -1) data.erase(data.begin() +
id);
53 if (current_position == -1 || current_position == index) {
return; }
55 if(current_position - (
int32)index > 0)
57 std::rotate(
begin() + index,
begin() + current_position,
begin() + current_position + 1);
61 std::rotate(
begin() + current_position,
begin() + current_position + 1,
begin() + index + 1);
67 return std::find(data.begin(), data.end(),
object) != data.end();
72 iterator pos = std::find(data.begin(), data.end(),
object);
73 if (pos == data.end())
return -1;
74 return pos - data.begin();
85 return index >= 0 && index <
Size() - 1;
100 template<
class NewType>
106 copy.
Add((NewType)value);
116 void Sort(std::function<
bool(T& , T&)> function)
118 std::sort(data.begin(), data.end(), function);
147 iterator
begin() {
return data.begin(); }
148 iterator
end() {
return data.end(); }
149 const_iterator
begin()
const {
return data.cbegin(); }
150 const_iterator
end()
const {
return data.cend(); }
151 const_iterator
cbegin()
const {
return data.cbegin(); }
152 const_iterator
cend()
const {
return data.cend(); }
iterator end()
Definition Array.hpp:148
T * Data()
Definition Array.hpp:131
void Insert(T &&object, uint32 index)
Definition Array.hpp:32
void Insert(const T &object, uint32 index)
Definition Array.hpp:31
const_iterator end() const
Definition Array.hpp:150
void MoveTo(T object, uint32 index)
Definition Array.hpp:50
Array()
Definition Array.hpp:16
bool Contains(T object)
Definition Array.hpp:65
T & First()
Definition Array.hpp:136
iterator begin()
Definition Array.hpp:147
Array(Array< T > ©)
Definition Array.hpp:24
void Add(T &&object)
Definition Array.hpp:27
Array< T > Reverse()
Definition Array.hpp:93
T & Last()
Definition Array.hpp:141
void Invert()
Definition Array.hpp:88
void RemoveAt(uint32 index)
Definition Array.hpp:34
void Remove(T object)
Definition Array.hpp:44
void Sort(std::function< bool(T &, T &)> function)
Definition Array.hpp:116
Array(std::initializer_list< T > list)
Definition Array.hpp:18
bool Empty()
Definition Array.hpp:81
void Add(const T &object)
Definition Array.hpp:26
void Clear()
Definition Array.hpp:111
Array(const Array< T > ©)
Definition Array.hpp:23
const_iterator cend() const
Definition Array.hpp:152
Array< NewType > Cast()
Definition Array.hpp:101
uint32 Size()
Definition Array.hpp:77
void Resize(uint16 size)
Definition Array.hpp:79
const_iterator cbegin() const
Definition Array.hpp:151
const T & operator[](int index) const
Definition Array.hpp:121
void Add(Array< T > &otherArray)
Definition Array.hpp:29
int32 Find(T object)
Definition Array.hpp:70
void RemoveAt(uint32 index, uint32 amount)
Definition Array.hpp:39
const_iterator begin() const
Definition Array.hpp:149
bool IsValidIndex(int32 index)
Definition Array.hpp:83
int32_t int32
Definition Primitives.hpp:13
uint16_t uint16
Definition Primitives.hpp:9
uint32_t uint32
Definition Primitives.hpp:12