본문 바로가기

API / MFC/Function Information

CARRAY CLASS

//afxtempl.h

template
class CArray : public CObject
{
public:
// Construction
	CArray();

// Attributes
	INT_PTR GetSize() const; // 현재 배열 크기를 얻음
	INT_PTR GetCount() const; // 현재 배열 크기를 얻음
	BOOL IsEmpty() const; // 배열이 비어 있는지 확인
	INT_PTR GetUpperBound() const; // 값을 가지고 있는 index 중에서 가장 큰 index 반환 즉, 배열의 마지막 번호 반환
	void SetSize(INT_PTR nNewSize, INT_PTR nGrowBy = -1); // 배열의 크기를 결정

// Operations
	// Clean up
	void FreeExtra(); // 값을 가지고있는 index중에서 가장 큰 index보다 큰 index들에 대한 메모리 해제 즉, 사용하지 않는 메모리 반환
	void RemoveAll(); // 배열의 모든 값 제거

	// Accessing elements
	const TYPE& GetAt(INT_PTR nIndex) const; // 지정된 인덱스 값 반환
	TYPE& GetAt(INT_PTR nIndex); // 지정된 인덱스 값 반환
	void SetAt(INT_PTR nIndex, ARG_TYPE newElement); // 지정된 인덱스 값 설정
	const TYPE& ElementAt(INT_PTR nIndex) const;  // 배열 내에서 포인터 값을 임시적으로 참조
	TYPE& ElementAt(INT_PTR nIndex); // 배열 내에서 포인터 값을 임시적으로 참조

	// Direct Access to the element data (may return NULL)
	const TYPE* GetData() const; // 배열의 초기값 넣기(NULL 가능)
	TYPE* GetData(); // 배열의 초기값 넣기(NULL 가능)

	// Potentially growing the array
	void SetAtGrow(INT_PTR nIndex, ARG_TYPE newElement); //  추가하는 값을 원하는 배열 위치에 추가
	INT_PTR Add(ARG_TYPE newElement); // 추가하는 값을 배열의 끝에 추가
	INT_PTR Append(const CArray& src); // 다른 배열의 값을 추가
	void Copy(const CArray& src); // 다른 배열의 값을 복사

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

	// Operations that move elements around
	void InsertAt(INT_PTR nIndex, ARG_TYPE newElement, INT_PTR nCount = 1); //특정 인덱스 값 추가
	void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); // 특정 인덱스 값 제거
	void InsertAt(INT_PTR nStartIndex, CArray* pNewArray); // 다른 배열 값 추가

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

public:
	~CArray();
	void Serialize(CArchive&);
#ifdef _DEBUG
	void Dump(CDumpContext&) const;
	void AssertValid() const;
#endif
};





참조 : http://msdn.microsoft.com/ko-kr/library/7y7b8fx3(VS.80).aspx