/* ========================================================================== * ÆÄ ÀÏ : DefragmentArray.h * ¸ñ Àû : ¾Õ¿¡¼­ºÎÅÍ µ¥ÀÌÅÍ ³¡ À§Ä¡±îÁö ºó °ø°£ÀÌ ¾ø´Â ¹è¿­ÇüÅÂÀÇ ÀڷᱸÁ¶ * ÀÛ ¼º ÀÚ : ¹Ú°æÈñ * ÀÛ ¼º ÀÏ : 2006-11-13 * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * * ÁÖÀÇ»çÇ× : Á¤·ÄÇÏÁö¾ÊÀ½, Æ÷ÀÎÅÍ ÇüŸ¸ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀ½ *===========================================================================*/ #pragma once #pragma warning( push ) //#pragma warning( disable: 4996 ) #pragma warning( disable: 4267 ) #include using namespace std; /// ¹è¿­ /// Çѹø ´Ã¾î³­ ¿ë·®(¼ö¿ë°¡´ÉÇÑ ÃÖ´ë ¿ø¼Ò ¼ö)Àº ÁÙ¾îµéÁö ¾Ê´Â´Ù. template class tDefragmentArray : protected vector { typedef tDefragmentArray cSelf; unsigned int mCount; public: typedef T* cIterator; typedef const T* cConstIterator; public: explicit tDefragmentArray(); explicit tDefragmentArray( unsigned int size ); tDefragmentArray( const cSelf& other ); /// ¹Ýº¹ÀÚ¸¦ ¸®ÅÏ cIterator Begin(); cConstIterator Begin() const; cIterator End(); cConstIterator End() const; /// ÂüÁ¶ ¿¬»êÀÚ /// ÁÖÀÇ: À妽ºÀÇ ¹üÀ§¸¦ °Ë»çÇÏÁö ¾Ê´Â´Ù. T& operator [] ( unsigned int i ); const T& operator [] ( unsigned int i ) const; /// µ¥ÀÌÅͰ¡ µé¾î ÀÖ´Â °¹¼ö Ãâ·Â unsigned int Count(); /// ÀÚ·á ÀÔ·Â void Insert(T val); /// ÀÚ·á »èÁ¦ bool Erase(T val); /// ÀڷᱸÁ¶ µ¥ÀÌŸ ¸ðµÎ »èÁ¦ void Clear(); private: cSelf& operator = ( const cSelf& other ); }; #include "DefragmentArray.inl" #pragma warning( pop )