59 explicit CSimpleVectorT(
void) : m_bufferSize(0), m_dataSize(0), m_pBuffer(NULL)
65 explicit CSimpleVectorT(
size_t bufferSize) : m_bufferSize(bufferSize), m_dataSize(0)
67 m_pBuffer =
new TYP[m_bufferSize];
107 const TYP&
At(INDEX index)
const
110 return m_pBuffer[index];
122 return m_pBuffer[index];
134 return m_pBuffer[index];
146 return m_pBuffer[index];
156 bool Set(INDEX index,
const TYP& t)
158 if ( m_dataSize <= index ) {
return false; }
159 m_pBuffer[index] = t;
182 return m_dataSize == 0;
198 operator size_t(
void)
const
233 if ( m_bufferSize < s )
235 m_bufferSize = m_GetSecureSize(s + 1);
236 TYP* P =
new TYP[m_bufferSize];
237 loop ( i, m_dataSize )
241 if ( m_pBuffer != NULL )
260 if ( m_bufferSize <= m_dataSize )
262 m_bufferSize = m_GetSecureSize(m_bufferSize + 1);
263 TYP* P =
new TYP[m_bufferSize];
264 loop ( i, m_dataSize )
268 if ( m_pBuffer != NULL )
274 m_pBuffer[m_dataSize] = t;
276 return m_dataSize - 1;
289 for ( INDEX i = index ; i < m_dataSize - 1; i++ )
291 m_pBuffer[i] = m_pBuffer[i + 1];
307 if ( m_pBuffer != NULL )
322 loop ( i, m_dataSize )
324 if ( m_pBuffer[i] == t )
329 return INVALID_INDEX;
337 size_t m_GetSecureSize(
size_t size)
339 size_t marginSize = size / 8;
340 marginSize = (marginSize < 4) ? 4 : ((marginSize > 1024) ? 1024 : marginSize);
341 return size + marginSize;
#define loop(VAR, CNT)
loop構文.
TYP * ReferBuffer(void)
[取得] バッファ取得
bool Set(INDEX index, const TYP &t)
[設定] 要素の設定.
bool IsEmpty(void) const
[確認] 要素の有無確認.
void RemoveAll(void)
[削除] 空化
const TYP * ReferBuffer(void) const
[取得] バッファ取得
size_t GetSize(void) const
[取得] サイズ取得
TYP & At(INDEX index)
[取得] 要素の参照取得.
bool Remove(INDEX index)
[削除] 要素一つ削除.
virtual ~CSimpleVectorT(void)
デストラクタ
INDEX Find(const TYP &t) const
[検索] 検索.
const TYP & operator[](INDEX index) const
[取得] 要素の参照取得.
CSimpleVectorT(size_t bufferSize)
コンストラクタ
void SetSize(size_t s)
[設定] サイズ設定
bool IsInRange(INDEX index) const
[確認] INDEXの有効確認.
CSimpleVectorT(const CSimpleVectorT &other)
コピーコンストラクタ
const TYP & At(INDEX index) const
[取得] 要素の参照取得.
CSimpleVectorT(void)
コンストラクタ
TYP & operator[](INDEX index)
[取得] 要素の参照取得.
INDEX Add(const TYP &t)
[追加] 要素一つ追加.
CSimpleVectorT & operator=(const CSimpleVectorT &other)
[複製] コピーオペレータ
bool IsInRange(INDEX value, size_t size)
[確認] 範囲チェック.