/* ======== SourceMM ======== * Copyright (C) 2004-2005 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng * * Author(s): David "BAILOPAN" Anderson * ============================ */ #ifndef _INCLUDE_SMMVECTOR_H #define _INCLUDE_SMMVECTOR_H template class DynVector { public: DynVector() { m_Data = NULL; m_CurrentSize = 0; m_UsedSize = 0; } ~DynVector() { clear(); } void clear() { if (m_Data) { delete [] m_Data; m_Data = NULL; } m_UsedSize = 0; m_CurrentSize = 0; } void resize(size_t size) { if (!size) clear(); else Grow(size); m_UsedSize = size; } DynVector & operator =(DynVector &src) { Grow(src.m_UsedSize + 1); for (size_t i=0; i size) ? size : m_UsedSize; for (size_t i=0; i m_CurrentSize) Grow((m_UsedSize+1) * 2); m_UsedSize++; } private: T * m_Data; size_t m_CurrentSize; size_t m_UsedSize; }; #endif //_INCLUDE_SMMVECTOR_H