karray.h

来自「一个简单而又高效的嵌入式操作系统.包括GUI及文件系统.仿Windows设计,类」· C头文件 代码 · 共 68 行

H
68
字号
// KArray.h: interface for the KArray class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_KARRAY_H__F19FEDC1_6BDB_46F8_889C_1C0688F0AD0E__INCLUDED_)
#define AFX_KARRAY_H__F19FEDC1_6BDB_46F8_889C_1C0688F0AD0E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// KArray<TYPE>

template<class TYPE>
class KArray
{
public:
// Construction
	KArray();

// Attributes
	int GetSize() const;
	void SetSize(int nNewSize, int nGrowBy);

// Operations
	// Clean up
	void FreeExtra();
	void RemoveAll();

	// Accessing elements
	TYPE GetAt(int nIndex) const;
	void SetAt(int nIndex, TYPE newElement);
	TYPE& ElementAt(int nIndex);

	// Direct Access to the element data (may return NULL)
	const TYPE* GetData() const;
	TYPE* GetData();

	// Potentially growing the array
	void SetAtGrow(int nIndex, TYPE newElement);
	int Add(TYPE newElement);
	int Append(const KArray& src);
	void Copy(const KArray& src);

	// overloaded operator helpers
	TYPE operator[](int nIndex) const;
	TYPE& operator[](int nIndex);

	// Operations that move elements around
	void InsertAt(int nIndex, TYPE newElement, int nCount);
	void RemoveAt(int nIndex, int nCount);
	void InsertAt(int nStartIndex, KArray* pNewArray);
	void InsertAt(int nIndex, TYPE newElement);
	void RemoveAt(int nIndex);

// Implementation
protected:
	TYPE* m_pData;   // the actual array of data
	int m_nSize;     // # of elements (upperBound - 1)
	int m_nMaxSize;  // max allocated
	int m_nGrowBy;   // grow amount

public:
	~KArray();
};

#endif // !defined(AFX_KARRAY_H__F19FEDC1_6BDB_46F8_889C_1C0688F0AD0E__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?