004リスト::並べ替え

 

#include " stdafx.hを" 
の#include <iostreamの> 
の#include <リスト> 使用して名前空間はstd; 
typedefは構造体SStud 
{ INT nNumb。
    CHAR szName [ 20 ]。
    ダブルfMath; 
}データ; BOOL byNumb(CONST DATA&DMIN、CONST DATA&dCompare)
{ 場合(dMin.nNumb < dCompare.nNumb)は
    { 返す
    } を返す
}

 

    


    
         
     

BOOL BYNAME(CONST DATA&DMIN、CONST DATA&dCompare)
{ 
    int型ます。nRESULT = のstrcmp(dMin.szName、dCompare.szName)。
    もし(ます。nRESULT < 0 
    { 
        戻り 
    } 
    を返す 
} 

ボイド試験()
{ 
    
    リスト <SStud> C1。
    リスト <SStud> ::イテレータITER。
    データd1 = { 1" ASD "1.1 }。
    データD2= { 22" 222 "2.1 }。
    データD3 = { 3" 333 "3.1 }。
    データD4 = { 10" 10 "2.5 }。
    c1.push_back(D1)。
    c1.push_back(D2)。
    c1.push_back(D3)。
    c1.push_back(D4)。

    裁判所未満 << " ソートする前に:" << てendl; 
    ITER = c1.begin()。
    しばらく(ITER!=c1.end())
    { 
        データD = * ITER。
        裁判所未満 << "  " << d.nNumb << "  " << d.szName << "  " << d.fMath << てendl;
        ++ ITER; 
    } 

    COUT << " ソートbyNumb:" << ENDL。
    c1.sort(byNumb)。
    ITER = c1.begin()。
    しばらく(!ITER = c1.end())
    { 
        データD = * ITER。
        COUT < << d.nNumb << "  " << d.szName << "  " << d.fMath << てendl;
        ++ ITER; 
    } 

    COUT << " BYNAMEソーティング:" << ENDL。
    c1.sort(BYNAME)。
    ITER = c1.begin()。
    しばらく(!ITER = c1.end())
    { 
        データD = * ITER。
        裁判所未満 << "  " << d.nNumb << "  " << d.szName << " ITER; 
    } 
} 

int型のmain(int型 ARGC、チャー *のARGV []、CHAR ** envpを)
{ 
    テスト(); 

    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/huafan/p/11616550.html