// stable_sort( &array[start], &array[end], bool (function*)() )
// 처음 부터 끝까지 bool조건으로 정렬
// 처음 부터 끝까지 bool조건으로 정렬
#include <vector>
#include <algorithm>
#include <algorithm>
struct _sItemInfo
{
int nType;
{
int nType;
int nSubType;
int nLevel;
int nLevel;
_sItemInfo() : nType( 0 ), nSubType( 0 ), nLevel( 0 )
{}
};
{}
};
bool SortCredit( const _sItemInfo& lhs, const _sItemInfo& rhs )
{
bool swap = false;
{
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;
}
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 |