108 for (
int j=0;j<
size;j++){
115 this->
p_data = moveFrom.p_data;
116 this->
len = moveFrom.len;
118 moveFrom.p_data =
nullptr;
120 moveFrom.bufferLen = 0;
127 for (
int j=0;j<copyFrom.
size();j++){
135 this->
len = to - from;
137 for (
size_t j=0;j<this->
len;j++){
170 for (
int j=
len; j >= 0; j--){
189 size_t newLen = v2 - v1;
193 for (
auto ptr = v1; ptr != v2; ptr++) {
198 inline void assign(
size_t number, T value) {
201 for (
int j=0;j<number;j++){
228 for (
int j=0;j<copyFrom.
size();j++){
239 inline bool resize(
int newSize, T value){
241 for (
int j=0;j<newSize;j++){
258 int oldSize = this->
len;
261 return this->
len!=oldSize;
284 int lenToEnd =
len - pos - 1;
289 for (
int j=pos; j<
len; j++){
303 operator bool()
const {
313 if (newSize<=0)
return;
315 if (newSize>
bufferLen || this->p_data==
nullptr ||shrink){
319 this->p_data =
new T[newSize+1];
320 this->bufferLen = newSize;
321 if (oldData !=
nullptr) {
322 if(copy && this->len > 0){
323 memcpy((
void*)
p_data,(
void*) oldData, this->len*
sizeof(T));
326 cleanup(oldData, newSize, oldBufferLen);
335 for (
int j=from;j<to;j++){
Iterator for the Vector class.
Definition Vector.h:23
bool operator>=(iterator it)
Definition Vector.h:75
size_t pos()
Definition Vector.h:90
iterator operator+(int offset)
Definition Vector.h:59
bool operator<(iterator it)
Definition Vector.h:66
iterator operator--(int n)
Definition Vector.h:49
bool operator<=(iterator it)
Definition Vector.h:69
T & operator*()
Definition Vector.h:81
T * operator->()
Definition Vector.h:84
iterator(T *parPtr, size_t pos)
Definition Vector.h:30
T * ptr
Definition Vector.h:25
iterator operator++(int n)
Definition Vector.h:39
iterator()
Definition Vector.h:28
iterator operator++()
Definition Vector.h:44
iterator operator--()
Definition Vector.h:54
iterator(const iterator ©From)
Definition Vector.h:35
size_t pos_
Definition Vector.h:26
T * getPtr()
Definition Vector.h:87
bool operator==(iterator it)
Definition Vector.h:63
size_t operator-(iterator it)
Definition Vector.h:93
bool operator!=(iterator it)
Definition Vector.h:78
bool operator>(iterator it)
Definition Vector.h:72
Vector implementation which provides the most important methods as defined by std::vector....
Definition Vector.h:15
void pop_back()
Definition Vector.h:177
Vector(T *from, T *to)
legacy constructor with pointer range
Definition Vector.h:134
void swap(Vector< T > &in)
Definition Vector.h:206
bool resize(int newSize)
Definition Vector.h:257
void erase(iterator it)
Definition Vector.h:277
Vector(Vector< T > &&moveFrom)
Definition Vector.h:113
void push_front(T value)
Definition Vector.h:167
Vector< T > & operator=(Vector< T > ©From)
Definition Vector.h:226
virtual ~Vector()
Destructor.
Definition Vector.h:143
void assign(size_t number, T value)
Definition Vector.h:198
Vector(int size, T value)
allocate size and initialize array
Definition Vector.h:106
bool empty()
Definition Vector.h:157
Vector(size_t len=20)
default constructor
Definition Vector.h:101
T & back()
Definition Vector.h:268
int bufferLen
Definition Vector.h:308
Vector(Vector< T > ©From)
copy constructor
Definition Vector.h:125
void pop_front()
Definition Vector.h:183
void shrink_to_fit()
Definition Vector.h:249
void push_back(T value)
Definition Vector.h:161
void resize_internal(int newSize, bool copy, bool shrink=false)
Definition Vector.h:312
void erase(int pos)
Definition Vector.h:282
void cleanup(T *data, int from, int to)
Definition Vector.h:334
T * p_data
Definition Vector.h:310
T & operator[](int index)
Definition Vector.h:221
void assign(iterator v1, iterator v2)
Definition Vector.h:188
bool resize(int newSize, T value)
Definition Vector.h:239
void clear()
Definition Vector.h:149
iterator end()
Definition Vector.h:272
iterator begin()
Definition Vector.h:264
int capacity()
Definition Vector.h:253
T * data()
Definition Vector.h:299
int size()
Definition Vector.h:153
int len
Definition Vector.h:309