|
|
1.1 root 1: typedef struct {
2: int left;
3: int y;
4: int width;
5: } AAA;
6:
7: ////////////////////////////////////////////////////////////////////////////
8:
9:
10: class CAaaArray : public CObject
11: {
12:
13: DECLARE_DYNAMIC(CAaaArray)
14: public:
15:
16: // Construction
17: CAaaArray();
18:
19: // Attributes
20: int GetSize() const
21: { return m_nSize; }
22: int GetUpperBound() const
23: { return m_nSize-1; }
24: void SetSize(int nNewSize, int nGrowBy = -1);
25:
26: // Operations
27: // Clean up
28: void FreeExtra();
29: void RemoveAll()
30: { SetSize(0); }
31:
32: // Accessing elements
33: AAA GetAt(int nIndex) const
34: { ASSERT(nIndex >= 0 && nIndex < m_nSize);
35: return m_pData[nIndex]; }
36: void SetAt(int nIndex, AAA newElement)
37: { ASSERT(nIndex >= 0 && nIndex < m_nSize);
38: m_pData[nIndex] = newElement; }
39: AAA& ElementAt(int nIndex)
40: { ASSERT(nIndex >= 0 && nIndex < m_nSize);
41: return m_pData[nIndex]; }
42:
43: // Potentially growing the array
44: void SetAtGrow(int nIndex, AAA newElement);
45: int Add(AAA newElement)
46: { int nIndex = m_nSize;
47: SetAtGrow(nIndex, newElement);
48: return nIndex; }
49:
50: // overloaded operator helpers
51: AAA operator[](int nIndex) const
52: { return GetAt(nIndex); }
53: AAA& operator[](int nIndex)
54: { return ElementAt(nIndex); }
55:
56: // Operations that move elements around
57: void InsertAt(int nIndex, AAA newElement, int nCount = 1);
58: void RemoveAt(int nIndex, int nCount = 1);
59: void InsertAt(int nStartIndex, CAaaArray* pNewArray);
60:
61: // Implementation
62: protected:
63: AAA* m_pData; // the actual array of data
64: int m_nSize; // # of elements (upperBound - 1)
65: int m_nMaxSize; // max allocated
66: int m_nGrowBy; // grow amount
67:
68: public:
69: ~CAaaArray();
70: #if 0
71: #ifdef _DEBUG
72: void Dump(CDumpContext&) const;
73: void AssertValid() const;
74: #endif
75: #endif // 0
76: };
77:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.