출처: http://blog.naver.com/kim779?Redirect=Log&logNo=150035365776

// Array.cpp : Defines the entry point for the console application.
//
// 템플릿을 정의할때 두개의 매개변수를 받는 이유는...
// 템플릿에 사용되는 첫번째 매개변수는 컬렉션 클래스에 저장될 데이터 형식이고
// 두번째매개변수는 컬렉션 클래스에 데이터를 저장하기 위해 사용하는 멤버 함수의 매개변수 데이터 형식이다..

#include "stdafx.h"

CString strData[] = {_T("SUN"), _T("MON"), _T("TUE"),
   _T("WED"), _T("THU"),_T("FRI"), _T("SAT") };

 

CString strEnglish[] = {
 _T("January"), _T("February"), _T("March"), _T("April"),
 _T("May"), _T("June"), _T("July"), _T("August"), _T("September"),
 _T("October"), _T("Nobember"), _T("December")
};

CString strKorean[] = {
 _T("1월"), _T("2월"), _T("3월"), _T("4월"),
 _T("5월"), _T("6월"), _T("7월"), _T("8월"),
 _T("9월"), _T("10월"), _T("11월"), _T("12월"),
};
 

void main()
{
 
 //CArray
 int i;
 CArray <UINT, UINT> array;
 array.SetSize(10);

 for(i=0 ; i < 10 ; i++)
 {
  array[i] = i + 1;
 }

 array.InsertAt(5,20);
 for(i= 0 ; i <array.GetSize() ; i++)
 {
  cout << array[i] << endl;
 }

 

 //CList
 CList <CString, CString> list;
 POSITION pos;
 CString strdata,data;

 for(i = 0 ; i < sizeof(strData)/sizeof(CString) ; i++)
 {
  list.AddTail(strData[i]);
 }

 pos=list.GetHeadPosition();
 while(pos)
 {
  data = list.GetNext(pos);
  cout << data << endl;
 }

 //CMap
 CString strKey, strValue;
 CMap<CString, LPCSTR, CString, CString&> map;

 for(i = 0 ; i < sizeof(strEnglish)/sizeof(CString) ; i++)
 {
  map.SetAt(strEnglish[i], strKorean[i]); 
 }

 pos = map.GetStartPosition();
 for(i = 0 ; i < sizeof(strEnglish)/sizeof(CString) ; i++)
 {
  map.GetNextAssoc(pos, strKey, strValue);
  cout << strKey << strValue << endl;
 }

}


AND