// std.h -- // $Id: std.h 1230 2007-03-09 15:58:53Z jcw $ // This is part of Metakit, see http://www.equi4.com/metakit.html /** @file * Configuration header for STL-based builds */ #define q4_STD 1 #include "mk4str.h" #include ///////////////////////////////////////////////////////////////////////////// template class c4_ArrayT { #if defined(_MSC_VER) || defined(__BORLANDC__) d4_std::vector > _vector; #else d4_std::vector _vector; #endif public: c4_ArrayT(){} ~c4_ArrayT(){} int GetSize()const { return _vector.size(); } void SetSize(int nNewSize, int = - 1) { _vector.resize(nNewSize); } T GetAt(int nIndex)const { return _vector[nIndex]; } T &ElementAt(int nIndex) { return _vector[nIndex]; } void SetAt(int nIndex, const T &newElement) { _vector[nIndex] = newElement; } int Add(const T &newElement) { int n = _vector.size(); _vector.push_back(newElement); return n; } void InsertAt(int nIndex, const T &newElement, int nCount = 1) { _vector.insert(&_vector[nIndex], nCount, newElement); } void RemoveAt(int nIndex, int nCount = 1) { _vector.erase(&_vector[nIndex], &_vector[nIndex + nCount]); } }; typedef c4_ArrayT < t4_i32 > c4_DWordArray; typedef c4_ArrayT < void * > c4_PtrArray; typedef c4_ArrayT < c4_String > c4_StringArray; /////////////////////////////////////////////////////////////////////////////