#include "stdafx.h" #include <list> #include<algorithm> using namespace std; typedef struct subscribeitem { char *cig_code; char *cig_name; int cig_quantity; //以此作为排序 public: bool operator > (const subscribeitem& b1) const { return cig_quantity>b1.cig_quantity; } bool operator < (const subscribeitem& b1) const { return cig_quantity < b1.cig_quantity; } }Subitem; void main() { list <Subitem> ::iterator iter; list <Subitem> m_plist; Subitem item1; //item1 = new subscribeitem; item1.cig_code="123456"; item1.cig_name="huanghelou"; item1.cig_quantity=10; m_plist.push_back(item1); Subitem item2; //item2 = new subscribeitem; item2.cig_code="123457"; item2.cig_name="longjinglong"; item2.cig_quantity=30; m_plist.push_back(item2); Subitem item3; //item3 = new subscribeitem; item3.cig_code="123458"; item3.cig_name="zhongmei"; item3.cig_quantity=20; m_plist.push_back(item3); //m_plist.sort(comp()); for(iter=m_plist.begin();iter!=m_plist.end();iter++) printf("%d/n",iter->cig_quantity); m_plist.sort(greater<Subitem>());//from big to small //m_plist.sort(less<Subitem>());//from small to big for(iter=m_plist.begin();iter!=m_plist.end();iter++) printf("%d/n",iter->cig_quantity); getchar(); //return 0; }