티스토리 뷰
목차
반응형
MFC강좌, CArray 배열 사용 방법 (이중배열 포함 get sest)
기본적인 데이터 추가 예
Add, SetAt, SetAtGrow로 데이터를 추가할 수 있고, 추가하기 전에 SetSize로 배열의 크기를 지정해 줘야 합니다.
Add는 일반적으로 사용자가 원하는 위치에 들어가지 않을수가 있어서 사용시 주의해야합니다.
[MFC 예제] 구조체 배열 사용법
1. SetSize()
1 2 3 4 5 6 7 8 9 | CArray m_aTest; m_aTest.SetSize(3); m_aTest.Add("가나다"); m_aTest.Add("라마바"); m_aTest.Add("사아자"); for(int i = 0; i < m_aTest.GetSize(); i++) TRACE("m_aTest[%d] = %s\r\n", i, m_aTest[i]); | cs |
[Output]
1 2 3 4 5 6 | m_aTest[0] = m_aTest[1] = m_aTest[2] = m_aTest[3] = 가나다 m_aTest[4] = 라마바 m_aTest[5] = 사아자 | cs |
2. Add()
1 2 3 4 5 6 | m_aTest.Add("가나다"); m_aTest.Add("라마바"); m_aTest.Add("사아자"); for(int i = 0; i < m_aTest.GetSize(); i++) TRACE("m_aTest[%d] = %s\r\n", i, m_aTest[i]); | cs |
3. SetAtGrow()
1 2 3 4 5 6 | m_aTest.SetAtGrow(0, "가나다"); m_aTest.SetAtGrow(1, "라마바"); m_aTest.SetAtGrow(2, "사아자"); for(int i = 0; i < m_aTest.GetSize(); i++) TRACE("m_aTest[%d] = %s\r\n", i, m_aTest[i]); | cs |
[MFC 예제] 구조체 배열 사용법
4. SetAt()
1 2 3 4 5 6 7 | m_aTest.SetSize(4); m_aTest.SetAt(0, "가나다"); m_aTest.SetAt(1, "라마바"); m_aTest.SetAt(3, "사아자"); for(int i = 0; i < m_aTest.GetSize(); i++) TRACE("m_aTest[%d] = %s\r\n", i, m_aTest[i]); | cs |
5. SetAt()
1 2 3 4 5 6 | m_aTest.SetAt(0, "가나다"); m_aTest.SetAt(1, "라마바"); m_aTest.SetAt(2, "사아자"); for(int i = 0; i < m_aTest.GetSize(); i++) TRACE("m_aTest[%d] = %s\r\n", i, m_aTest[i]); | cs |
동적으로 2중 배열 사용
예를들어, 아래처럼 20개의 데이터를 담을 수 있는 배열을 선언해 봅니다.
처음엔 SetSize를 10으로 주었다가 20으로 늘린 이후, 늘어난 배열의 길이만큼 데이터를 또 채워줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 | CUIntArray array; array.SetSize (10); for (int i=0; i<10; i++) array[i] = i + 1; ..... ..... ..... array.SetSize (20); for (i=10; i<20; i++) array[i] = i + 1; | cs |
그렇지만 이것은 MFC의 이중 배열은 아닙니다. 우리가 원하는 2중 배열의 모습을 아직은 갖추지 못했습니다.
[MFC 예제] 구조체 배열 사용법
다시, 처음으로 돌아가 다시 살펴보겠습니다.
1 2 3 4 | array.SetSize (10); for (i=0; i<10; i++) array[i] = i + 1; | cs |
위와 같은 배열을 하나 만든 이후에 아래처럼 값을 추가해주면 2중 배열이 됩니다.
1 2 3 4 5 6 7 8 9 | array.SetSize (10); for (i=0; i<10; i++) { for(j=0; j<3; j++) { array[i].InsertAt(j, i + j); } } | cs |
[MFC 예제] 구조체 배열 사용법
값을 가져올 땐 아래처럼 사용합니다.
1 2 3 4 5 6 7 | for (i=0; i<10; i++) { for(j=0; j<3; j++) { array[i].GetAt(j); } } | cs |
항상 2중 배열임을 잊지말고 정확하게 사용해줘야 합니다.
1 2 3 4 5 | array.GetSize(); = 1 array[0].GetSize(); = 3 | cs |
MFC강좌, CArray 배열 사용 방법 (이중배열 포함 get set)
반응형