STL List 에서 기본 자료형이 아닌 클래스 또는 구조체 정렬 하기.
class CObject
{
public:
int GetCurX(void);
int GetCurY(void) const;
};
list
이런 식으로 직접 만든 클래스를 STL List에 사용하고
클래스 맴버변수에 따른 정렬을 하고 싶다면 operator() 를 사용해서
비교 함수를 재정의 해주시면 됩니다.
struct stLISTsort
{
bool operator() (const CObject *pObject1, const CObject *pObject2) const
{
if ( pObject1->GetCurY() < pObject2->GetCurY() )
return true;
return false;
}
};
크다 작다 TRUE/FALSE 로 넣어주시면 됩니다.
g_stlObjectList.sort(stLISTsort());
그리고 이와 같이 sort 호출시 재정의된 구조체 또는 클래스를 넣어서
호출하면 위의 연산자로써 정렬을 하게 됩니다.
이 방법 외에도 여러가지 방법이 있습니다.
반응형
'STLTemplate > STL & EffectiveSTL' 카테고리의 다른 글
함수자 (0) | 2012.11.01 |
---|---|
어댑터에 사용하기 위한 사용자 정의 함수객체 (0) | 2012.11.01 |
compose_f_gx f(gx)) 조립함수객체 어댑터 (0) | 2012.11.01 |
STL algoritm + 클래스노드포인터 (0) | 2012.11.01 |
함수객체 어댑터 functor adapter (0) | 2012.11.01 |