CObject 컬렉션의 모든 개체를 삭제합니다.
이 컬렉션의 모든 개체 (컬렉션 개체 자체를 삭제 하지 않고)를 삭제 하는 방법을 설명 합니다.
컬렉션의 모든 개체를 삭제 하려면 CObjects (또는에서 파생 된 개체의 CObject), 반복의 문서에서 설명한 방법 중 하나를 사용 컬렉션의 모든 멤버에 액세스할 을 차례로 각 개체를 삭제 합니다.
주의 |
---|
컬렉션에서 개체를 공유할 수 있습니다.즉, 컬렉션 개체에 대 한 포인터를 유지 하지만 프로그램의 다른 부분과 동일한 개체에 대 한 포인터에도 있을 수 있습니다.개체를 사용 하 여 모든 부분이 완료 될 때까지 공유 되는 개체를 삭제 하지 않도록 주의 해야 합니다. |
이 문서는 개체를 삭제 하는 방법을 보여 줍니다.
목록
배열
지도
포인터를 Cobject의 목록에 있는 모든 개체를 삭제 하려면
사용 GetHeadPosition 및 GetNext 의 목록을 반복 합니다.
사용의 삭제 연산자 나올 때마다 반복에서 각 객체를 삭제할 수 있습니다.
호출 하는 RemoveAll 함수 요소와 관련 된 개체를 삭제 한 후 목록에서 모든 요소를 제거 합니다.
다음 예제에서는 목록에서 모든 개체를 삭제 하는 방법을 보여 줍니다. CPerson 개체입니다.목록에서 각 개체에 대 한 포인터입니다 있는 CPerson 원래 힙에 할당 된 개체입니다.
CTypedPtrList<CObList, CPerson*> myList;
CPerson* pPerson = new CPerson();
myList.AddHead(pPerson);
POSITION pos = myList.GetHeadPosition();
while(pos != NULL)
{
delete myList.GetNext(pos);
}
myList.RemoveAll();
마지막 함수 호출을 RemoveAll, 목록에서 모든 요소를 제거 하는 목록 멤버 함수입니다.멤버 함수 RemoveAt 단일 요소를 제거 합니다.
요소의 개체를 삭제 하 고 있는 요소를 제거 합니다.의 차이 확인 합니다.단순히 목록에서 요소를 제거의 목록 개체 참조를 제거 합니다.개체는 메모리에 남아 있습니다.개체를 삭제 하면이 소멸 되 고 메모리는 재활용 됩니다.따라서 요소의 개체 삭제 된 목록을 더 이상 존재 하는 개체에 액세스를 시도 하지 않도록 즉시 요소를 제거 하는 것이 중요 합니다.
배열의 모든 요소를 삭제 하려면
사용 GetSize 과 정수 인덱스 값의 배열을 반복할 수 있습니다.
사용은 삭제 연산자 나올 때마다 반복에서 각 요소를 삭제 합니다.
호출 하는 RemoveAll 함수를 삭제 한 후에 배열에서 모든 요소를 제거 합니다.
배열의 모든 요소를 삭제 하는 코드는 다음과 같습니다.
CArray<CPerson*, CPerson*> myArray; int i = 0; while (i < myArray.GetSize()) { delete myArray.GetAt(i++); } myArray.RemoveAll();
호출할 수 있는 위의 목록 예제와 같이 RemoveAll 배열에서 모든 요소를 제거 하려면 또는 RemoveAt 개별 요소를 제거 합니다.
맵의 모든 요소를 삭제 하려면
사용 GetStartPosition 및 GetNextAssoc 배열에서 반복 합니다.
사용은 삭제 연산자를 반복에서 나올 때마다 키 및/또는 각 지도 요소에 대 한 값을 삭제 합니다.
호출 하는 RemoveAll 함수를 삭제 한 후 지도에서 모든 요소를 제거 합니다.
모든 요소를 삭제 하는 코드는 CMap 컬렉션은 다음과 같습니다.지도에서 각 요소의 키로 문자열을 포함 하는 CPerson 개체 (파생 CObject) 값으로.
CMap<CString, LPCTSTR, CPerson*, CPerson*> myMap; // ... Add some key-value elements ... // Now delete the elements POSITION pos = myMap.GetStartPosition(); while(pos != NULL) { CPerson* pPerson; CString string; // Gets key (string) and value (pPerson) myMap.GetNextAssoc(pos, string, pPerson); delete pPerson; } // RemoveAll deletes the keys myMap.RemoveAll();
호출할 수 있는 RemoveAll 맵에 모든 요소를 제거 하려면 또는 RemoveKey 지정한 키와 개별 요소를 제거 합니다.