CTypedPtrList를 정렬하는 데 sort 등이 사용되는 템플릿 클래스가 필요합니다.C++ 또는 MFC에서 CTypedPtrList를 정렬하는 방법?
0
A
답변
3
이 샘플 CTypedPtrArray를 정렬합니다 : CTypePtrList이 .GetAt()와 .SetAt()를 지원하지 않는
typedef CTypedPtrArray<CPtrArray , CLog *> CLogData;
CLogData tLogData;
CLog *t1Log , * t2Log;
bool bChanged = true;
if (tLogData.IsEmpty())
return;
long int i, j;
for (i = 0 ; i < m_nCount - 1 ; i++)
{
for(j = i + 1; j < m_nCount ; j++)
{
t1Log = tLogData.GetAt(i);
t2Log = tLogData.GetAt(j) ;
if (strcmp(t1Log->GetThreadName() , t2Log->GetThreadName()) > 0)
{
tLogData.SetAt(i , t2Log);
tLogData.SetAt(j , t1Log);
}
}
}
0
KARTHIK의 솔루션, CTypedPtrList 작동하지 않습니다; 여기에 배열 대신 포인터 목록을 사용하는 해결책이 있습니다.
typedef CTypedPtrList<CPtrList, CMyObject*> ObjectList;
// sort object list using CMyObject's 'order' attribute
ObjectList* oldList = Objects;
Objects = new ObjectList();
for (POSITION pos1 = oldList->GetHeadPosition(); pos1 != NULL;)
{
CMyObject *obj1 = oldList->GetNext(pos1);
POSITION pos2 = Objects->GetHeadPosition();
bool inserted = false;
while (pos2 != NULL)
{
POSITION currentPos = pos2;
CMyObject *obj2 = Objects->GetNext(pos2);
if (obj1->GetOrder() < obj2->GetOrder())
{
Objects->InsertBefore(currentPos, obj1);
pos2 = NULL;
inserted = true;
}
}
if (!inserted) Objects->AddTail(obj1);
}
delete oldList;
관련 문제
- 1. mfc에서 사용자 지정 wm_copydata를 만드는 방법 C++
- 2. MFC에서 .NET으로 전환하는 방법
- 3. MFC에서 리본 막대 제거 C++
- 4. MFC에서 Javascript 함수를 호출하는 방법?
- 5. MFC에서 대화 상자로 저장하는 방법
- 6. MFC에서 글꼴 유형을 설정하는 간단한 방법 CListBox
- 7. Win32 또는 MFC에서 Cursors.AppStarting을 가져 오는 중입니까?
- 8. 컬렉션을 바인딩하고 정렬하는 방법
- 9. 뷰를 중앙 정렬하는 방법?
- 10. CoreData를 임의로 정렬하는 방법
- 11. 목록을 일반적으로 정렬하는 방법
- 12. RelativeView를 아래쪽으로 정렬하는 방법
- 13. C++/MFC에서 네트워크 공유 디렉토리 열거
- 14. 열을 다시 정렬하는 방법
- 15. xsl에서 속성을 정렬하는 방법
- 16. MergeCursor를 정렬하는 방법?
- 17. 목록 목록을 정렬하는 방법?
- 18. 루비 파일을 정렬하는 방법
- 19. 자바를 사용하여 정렬하는 방법
- 20. android에서 텍스트를 정렬하는 방법
- 21. plist에서 데이터를 정렬하는 방법?
- 22. 이미지를 오른쪽 정렬하는 방법?
- 23. 데이터 집합을 정렬하는 방법?
- 24. pagewise로 레코드를 정렬하는 방법
- 25. SQL보기 내에서 정렬하는 방법
- 26. div를 가운데 정렬하는 방법
- 27. 메시지를 알파벳순으로 정렬하는 방법
- 28. 그리드보기에서 이미지를 정렬하는 방법
- 29. MySql 데이터베이스를 정렬하는 방법?
- 30. 스프라이트를 중앙 정렬하는 방법?
포인터 나 데이터가 가리키는 데이터를 정렬하려고하지 않았습니다. –
'c'태그가 삭제되었습니다. – pmg