16 HRESULT
Add(
const TYPE& value );
18 HRESULT
SetAt(
raInt nIndex,
const TYPE& value );
39 for(
int i= 0; i < (int)
GetSize(); i++)
41 if(func) func (
GetAt(i));
53 if( nNewMaxSize < 0 || ( nNewMaxSize > INT_MAX /
sizeof( TYPE ) ) )
59 if( nNewMaxSize == 0 )
74 if( ( UINT )
m_nMaxSize + ( UINT )nGrowBy > ( UINT )INT_MAX )
77 nNewMaxSize = __max( nNewMaxSize,
m_nMaxSize + nGrowBy );
79 if(
sizeof( TYPE ) > UINT_MAX / ( UINT )nNewMaxSize )
82 TYPE* pDataNew = ( TYPE* )std::realloc(
m_pData, nNewMaxSize *
sizeof( TYPE ) );
83 if( pDataNew == NULL )
96 if( (
int)nOldSize > (int)nNewMaxSize )
101 for(
int i = (
int)nNewMaxSize; i < (int)nOldSize; ++i )
107 if( nOldSize < nNewMaxSize )
112 for(
int i = nOldSize; i < nNewMaxSize; ++i )
146 MoveMemory( &
m_pData[nIndex + 1], &
m_pData[nIndex],
sizeof( TYPE ) * ( (
int)
m_nSize - (
int)nIndex ) );
148 ::new ( &
m_pData[nIndex] ) TYPE;
176 iStart + nNumElements >
m_nSize )
183 for(
int i = iStart; i < ( iStart + nNumElements ); i++ )
198 iEnd - nNumElements < 0 )
205 for(
int i = iEnd; i > ( iEnd - nNumElements ); i-- )
229 MoveMemory( &
m_pData[nIndex], &
m_pData[(
int)nIndex + 1],
sizeof( TYPE ) * (
m_nSize - ( (
int)(nIndex) + 1 ) ) );
bool Contains(const TYPE &value)
HRESULT Remove(raInt nIndex)
HRESULT SetSizeInternal(int nNewMaxSize)
raInt LastIndexOf(const TYPE &value, raInt nIndex)
raInt LastIndexOf(const TYPE &value)
TYPE & GetAt(raInt nIndex) const
const TYPE & operator[](raInt nIndex) const
raInt IndexOf(const TYPE &value, raInt iStart)
HRESULT SetAt(raInt nIndex, const TYPE &value)
HRESULT SetSize(raInt nNewMaxSize)
raInt IndexOf(const TYPE &value)
virtual void __vsforeach(void(*func)(TYPE))
HRESULT Add(const TYPE &value)
TYPE & operator[](raInt nIndex)
raArray & operator=(const raArray< TYPE > &a)
HRESULT Insert(raInt nIndex, const TYPE &value)