댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
MFC
2017.01.25 08:47
[Collection] CArray Class 사용법
조회 수 18124 댓글 0
C 배열과 마찬가지로 수 있지만 동적으로 줄이고 수 만큼 증가 하는 배열을 지원 합니다. Public 생성자
Public 메서드
Public 연산자
배열 인덱스는 항상 0 위치에서 시작합니다. 상한 수정 또는 확장 과거 현재 바인딩 요소를 추가 하면 배열에 사용 여부를 결정할 수 있습니다. 일부 요소가 null 인 경우에 상한에 연속적으로 메모리를 할당 합니다.
C 배열의 액세스 때와 마찬가지로
배열의 개별 요소를 덤프 해야 하는 경우의 깊이 설정에서 CDumpContext 1 또는 큰. 특정 멤버 함수 전역 도우미 함수는이 클래스 호출의 대부분의 사용에 대해 사용자 지정 해야 합니다의 배열 클래스 파생 목록 파생 처럼입니다. --------------------------------------------------------- MFC에서 제공하는 CArray는 사용자가 원하는 자료형을 동적배열 사용할 수 있게 해준다. 기존의 자료형이나 클래스, 구조체도 사용 가능하다.
1. 준비 afxtempl.h CArray를 사용하기 위해서는 위 라이브러리가 필요하다
2. 선언 CArray <CPoint, CPoint&> m_vMCursor;
CPoint라는 클래스를 동적배열로 선언하였다. 파마스에 사용된것으로 마우스 클릭마다 x,y좌료를 배열에 저장하기 위해 CPoint로 선언하였다. <,&> 이부분에 사용자가 정의한 클래스나 구조체, 기존 자료형, 클래스 모두 사용 가능하다.
3. 배열 추가 CPoint mPoint; mPoint.x=100; mPoint.y=100; m_vMCursor.Add(mPoint);
Add()함수를 사용하여 배열추가를 하고 당연히 인자 자료형은 처음에 선언한 것과 동일해야한다.
m_vMCursor.InsertAt(0,mPoint); InsertAt()함수는 원하는 위치에 자료를 추가한다. 추가하기전에 그 위치에 원래 있던 자료와 그뒤 자료들의 인덱스를 증가시키고 추가하게 된다. 첫번째 인자 원하는 위치
m_vMCursor.SetAt(0,mPoint); SetAt()함수는 원하는 위치의 자료를 바꾼다. 다른 자료들의 인덱스는 변하지않고 원하는 위치의 자료만 다른 자료로 바꾼다. 첫번째 인자 원하는 위치
4. 자료 가져오기 CPoint mPoint; mPoint=m_vMCursor.GetAt(0);
GetAt()함수를 사용하며 인자는 자료를 가져오기 원하는 배열의 순서이다.
int i; i=m_vMCursor.GetSize();
GetSize()함수는 배열의 크기를 가져온다. for (i=0; i<m_vMCursor.GetSize();i++) SetCursorPos(mPoint.x,mPoint.y); ................. } 이런식으로 사용하면 된다.
5. 배열 삭제 vMCursor.RemoveAt(0); RemoveAt()함수는 원하는 위치의 자료를 지우고 그 뒤자료들의 인덱스를 감소시켜 빈공간을 채운다. m_vMCursor.RemoveAll();
RemoveAll()함수는 배열의 모든 내용을 지운다. [출처] MS Visual MFC - CArray 배열|작성자 스피어 class CParam { public: CString csFuncID; long nID1; BOOL bReturn; }; void CArrayTest() { long nCount; // 동적 배열 설정 CArray <CParam, CParam&> caParam; CParam cpTemp; CParam cpGetData; // 배열 사이즈 설정 caParam.SetSize(0); cpTemp.csFuncID = "TEST0"; cpTemp.nID1 = 0; cpTemp.bReturn = TRUE; // 배열에 요소 추가 caParam.Add(cpTemp); cpTemp.csFuncID = "TEST5"; cpTemp.nID1 = 5; cpTemp.bReturn = FALSE; caParam.Add(cpTemp); cpTemp.csFuncID = "TEST3"; cpTemp.nID1 = 3; cpTemp.bReturn = FALSE; caParam.Add(cpTemp); cpTemp.csFuncID = "TEST2"; cpTemp.nID1 = 2; cpTemp.bReturn = FALSE; // 배열에 지정한 위치에 요소 추가 caParam.InsertAt(1, cpTemp); // 지정한 요소 삭제 caParam.RemoveAt(2); cpTemp.csFuncID = "TEST1"; cpTemp.nID1 = 1; cpTemp.bReturn = TRUE; // 지정한 요소 대입 caParam.SetAt(0, cpTemp); // 배열의 요소수 취득 for(nCount = 0; nCount < caParam.GetCount(); nCount++) { // 지정한 요소 데이터 취득 cpGetData = caParam.GetAt(nCount); } } Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5