First commit.

This commit is contained in:
fanlumaster committed 2023-10-12 23:53:17 +08:00
commit 7b83802bb2
103 files changed
+19016

No files matched your search

+80
View File
@@ -0,0 +1,80 @@
//////////////////////////////////////////////////////////////////////
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// CSampleIMESampleIMEStructureArray.h
//
// CSampleIMEStructureArray declaration.
//
//////////////////////////////////////////////////////////////////////
#pragma once
#include <vector>
template<class T>
class CSampleIMEStructureArray
{
typedef typename std::vector<T> value_type;
typedef const T& CONST_REF;
typedef typename value_type CSampleIMEArray;
typedef typename value_type::iterator CSampleIMEIter;
public:
CSampleIMEStructureArray(): _imeVector()
{
}
explicit CSampleIMEStructureArray(size_t iCount): _imeVector(iCount)
{
}
CSampleIMEStructureArray(size_t iCount, CONST_REF tVal): _imeVector(iCount, tVal)
{
}
virtual ~CSampleIMEStructureArray() {}
inline CONST_REF GetAt(size_t iIndex) const
{
assert(iIndex <= _imeVector.size());
assert(_imeVector.size() > 0);
return _imeVector[iIndex];
}
inline T& GetAt(size_t iIndex)
{
assert(iIndex <= _imeVector.size());
assert(_imeVector.size() > 0);
return _imeVector[iIndex];
}
void RemoveAt(size_t iIndex, size_t iElements)
{
assert(iIndex <= _imeVector.size());
assert(_imeVector.size() > 0);
CSampleIMEIter beginIter = _imeVector.begin() + iIndex;
CSampleIMEIter lastIter = beginIter + iElements - 1;
_imeVector.erase(beginIter, lastIter);
}
size_t Count() const { return _imeVector.size(); }
void Append(const T& tVal)
{
_imeVector.push_back(tVal);
}
void Clear()
{
_imeVector.clear();
}
private:
CSampleIMEArray _imeVector; // the actual array of data
CSampleIMEIter _imeIter;
};