Windows/MFC
CStringList
aucd29
2013. 10. 2. 17:56
CStringList : CStringList 객체 생성.
GetHead : 리스트의 헤드 값을 돌려준다.
GetTail : 리스트이 테일 값을 돌려준다.
RemoveHead : 리스트 헤드 값을 제거.
RemoveTail : 리스트 테일 값을 제거.
RemoveAll : 리스트의 모든 원소를 제거
AddHead : 한 원소(또는 다른 리스트의 모든 원소들)을 리스트의 헤드에 붙인다.(새로운 헤드를 만는다는 뜻.)
AddTail : 한 원소(또는 다른 리스트의 모든 원소들)을 리스트의 테일에 붙인다.(새로운 헤드를 만는다는 뜻)
GetHeadPosition : 리스트의 헤드 원소 위치를 반환.
GetTailPosition : 리스트의 테일 원소 위치를 반환
GetNext : 반복할 때 다음 원소를 얻는다
GetPrev : 반복할 때 이전 원소를 얻는다.
GetAt : 주어진 위치에서 원소를 얻는다
SetAt : 주어진 위치에서 원소를 넣는다.
RemoveAt : 리스트에서 특정한 위치에 있는 원소를 제거.
InsertBefore : 주어진 위치 이전에 새 원소를 삽입.
InsertAfter : 주어진 위치 이후에 새 원소를 삽입.
Find : 포인터 값에 의해 지정된 원소의 위치를 얻는다.
FindIndex : 0부터 시작하는 인덱스를 기준으로 원소의 위치를 얻는다.
Getcount : 리스트에서 총 원소의 개수를 구한다.
IsEmpty : 비어 있는 리스트인지 테스트한다.
생성과 초기화
char *szFruits[ ] = {
"사과",
"딸기",
"포도",
"오렌지",
"자두"
};
CStringList list;
for(int i=0; i<5; i++)
list.AddTail(szFruits[i]);
순환
// 리스트 제일 앞에서 출발하여 순환한다.
POSITION pos = list.GetHeadPosition();
while(pos != NULL){
CString string = list.GetNext(pos);
cout << (LPCTSTR)string << endl;
}
cout << endl;
// 리스트 제일 뒤에서 출발하여 순환한다.
pos = list.GetTailPosition();
while(pos != NULL){
CString string = list.GetPrev(pos);
cout << (LPCTSTR)string << endl;
}
항목 삽입과 삭제
pos = list.Find("포도");
list.InsertBefore(pos, "살구");
list.InsertAfter(pos, "바나나");
list.RemoveAt (pos);
// 항목 삽입과 삭제 후 결과를 확인한다.
pos = list.GetHeadPosition();
while(pos != NULL){
CString string = list.GetNext(pos);
cout << (LPCTSTR)string << endl;
}
GetHead : 리스트의 헤드 값을 돌려준다.
GetTail : 리스트이 테일 값을 돌려준다.
RemoveHead : 리스트 헤드 값을 제거.
RemoveTail : 리스트 테일 값을 제거.
RemoveAll : 리스트의 모든 원소를 제거
AddHead : 한 원소(또는 다른 리스트의 모든 원소들)을 리스트의 헤드에 붙인다.(새로운 헤드를 만는다는 뜻.)
AddTail : 한 원소(또는 다른 리스트의 모든 원소들)을 리스트의 테일에 붙인다.(새로운 헤드를 만는다는 뜻)
GetHeadPosition : 리스트의 헤드 원소 위치를 반환.
GetTailPosition : 리스트의 테일 원소 위치를 반환
GetNext : 반복할 때 다음 원소를 얻는다
GetPrev : 반복할 때 이전 원소를 얻는다.
GetAt : 주어진 위치에서 원소를 얻는다
SetAt : 주어진 위치에서 원소를 넣는다.
RemoveAt : 리스트에서 특정한 위치에 있는 원소를 제거.
InsertBefore : 주어진 위치 이전에 새 원소를 삽입.
InsertAfter : 주어진 위치 이후에 새 원소를 삽입.
Find : 포인터 값에 의해 지정된 원소의 위치를 얻는다.
FindIndex : 0부터 시작하는 인덱스를 기준으로 원소의 위치를 얻는다.
Getcount : 리스트에서 총 원소의 개수를 구한다.
IsEmpty : 비어 있는 리스트인지 테스트한다.
생성과 초기화
char *szFruits[ ] = {
"사과",
"딸기",
"포도",
"오렌지",
"자두"
};
CStringList list;
for(int i=0; i<5; i++)
list.AddTail(szFruits[i]);
순환
// 리스트 제일 앞에서 출발하여 순환한다.
POSITION pos = list.GetHeadPosition();
while(pos != NULL){
CString string = list.GetNext(pos);
cout << (LPCTSTR)string << endl;
}
cout << endl;
// 리스트 제일 뒤에서 출발하여 순환한다.
pos = list.GetTailPosition();
while(pos != NULL){
CString string = list.GetPrev(pos);
cout << (LPCTSTR)string << endl;
}
항목 삽입과 삭제
pos = list.Find("포도");
list.InsertBefore(pos, "살구");
list.InsertAfter(pos, "바나나");
list.RemoveAt (pos);
// 항목 삽입과 삭제 후 결과를 확인한다.
pos = list.GetHeadPosition();
while(pos != NULL){
CString string = list.GetNext(pos);
cout << (LPCTSTR)string << endl;
}