#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 ; }