void copy(const sqvector<T>& v)\r
{\r
resize(v._size);\r
- for(unsigned int i = 0; i < v._size; i++) {\r
+ for(SQUnsignedInteger i = 0; i < v._size; i++) {\r
new ((void *)&_vals[i]) T(v._vals[i]);\r
}\r
_size = v._size;\r
~sqvector()\r
{\r
if(_allocated) {\r
- for(unsigned int i = 0; i < _size; i++)\r
+ for(SQUnsignedInteger i = 0; i < _size; i++)\r
_vals[i].~T();\r
SQ_FREE(_vals, (_allocated * sizeof(T)));\r
}\r
}\r
- void reserve(unsigned int newsize) { _realloc(newsize); }\r
- void resize(unsigned int newsize, const T& fill = T())\r
+ void reserve(SQUnsignedInteger newsize) { _realloc(newsize); }\r
+ void resize(SQUnsignedInteger newsize, const T& fill = T())\r
{\r
if(newsize > _allocated)\r
_realloc(newsize);\r
}\r
}\r
else{\r
- for(unsigned int i = newsize; i < _size; i++) {\r
+ for(SQUnsignedInteger i = newsize; i < _size; i++) {\r
_vals[i].~T();\r
}\r
_size = newsize;\r
}\r
void shrinktofit() { if(_size > 4) { _realloc(_size); } }\r
T& top() const { return _vals[_size - 1]; }\r
- inline unsigned int size() const { return _size; }\r
+ inline SQUnsignedInteger size() const { return _size; }\r
bool empty() const { return (_size <= 0); }\r
- inline void push_back(const T& val = T())\r
+ inline T &push_back(const T& val = T())\r
{\r
if(_allocated <= _size)\r
_realloc(_size * 2);\r
- new ((void *)&_vals[_size++]) T(val);\r
+ return *(new ((void *)&_vals[_size++]) T(val));\r
}\r
inline void pop_back()\r
{\r
_size--; _vals[_size].~T();\r
}\r
- void insert(unsigned int idx, const T& val)\r
+ void insert(SQUnsignedInteger idx, const T& val)\r
{\r
resize(_size + 1);\r
- for(unsigned int i = _size - 1; i > idx; i--) {\r
+ for(SQUnsignedInteger i = _size - 1; i > idx; i--) {\r
_vals[i] = _vals[i - 1];\r
}\r
_vals[idx] = val;\r
}\r
- void remove(unsigned int idx)\r
+ void remove(SQUnsignedInteger idx)\r
{\r
_vals[idx].~T();\r
if(idx < (_size - 1)) {\r
}\r
_size--;\r
}\r
- unsigned int capacity() { return _allocated; }\r
+ SQUnsignedInteger capacity() { return _allocated; }\r
inline T &back() const { return _vals[_size - 1]; }\r
- T& operator[](unsigned int pos) const{ return _vals[pos]; }\r
+ inline T& operator[](SQUnsignedInteger pos) const{ return _vals[pos]; }\r
T* _vals;\r
private:\r
- void _realloc(unsigned int newsize)\r
+ void _realloc(SQUnsignedInteger newsize)\r
{\r
newsize = (newsize > 0)?newsize:4;\r
_vals = (T*)SQ_REALLOC(_vals, _allocated * sizeof(T), newsize * sizeof(T));\r
_allocated = newsize;\r
}\r
- unsigned int _size;\r
- unsigned int _allocated;\r
+ SQUnsignedInteger _size;\r
+ SQUnsignedInteger _allocated;\r
};\r
\r
#endif //_SQUTILS_H_\r