블로그는 나의 힘!
 
// stable_sort( &array[start], &array[end], bool (function*)() )
// 처음 부터 끝까지  bool조건으로 정렬
 
#include <vector>
#include <algorithm> 
 
struct _sItemInfo
{    
     int   nType;
     int   nSubType;
     int   nLevel;
 
    _sItemInfo() : nType( 0 ), nSubType( 0 ), nLevel( 0 )
    {}
};
 
bool SortCredit( const _sItemInfo& lhs, const _sItemInfo& rhs )
{
      bool swap = false;
     if( lhs.nType < rhs.nType )   swap = true;
     if( lhs.nType == rhs.nType && lhs.nSubType < rhs.nSubType )   swap = true;
     if( lhs.nType == rhs.nType && lhs.nSubType == rhs.nLevel && lhs.nType < rhs.nLevel )   swap = true;

     return swap;
}
 
void main() {
 
    vector<_sItemInfo> vecStock;
    _sItemInfo            sInfo;
 
    for( long int i = 0; i < 5; i++ )
    {
        sInfo.nType         = i;    
        sInfo.nSubType   = i +1;    
        sInfo.nLevel        = i +2;    
    
    vecStock.push_back( sInfo[i] );
    } 
    stable_sort( vecStock.begin(), vecStock.end(), SortCredit );
 
 }



-  처음 부터 끝까지  bool조건로 정렬
- 일반 정렬에도 사용하나, 다중 정렬 사용시 stable_sort()를 주로 사용. ( 퀵 정렬 이었나?! 다중 정렬에 효율적... )

'[ Programing ] > STL & Booster' 카테고리의 다른 글

STL 컨테이너 차이점  (0) 2011.05.27
[BOOST] BOOST_FOREACH  (0) 2010.08.30
[STL] Set, MultiSet  (0) 2010.08.06
[STL] Binary search ( qsort, bsearch )  (0) 2010.06.29
[STL] Map, MultiMap 삽입, 검색, 삭제  (3) 2010.01.31
Posted by Mister_Q