STL中 list排序有关问题请问

STL中 list排序问题请教
C/C++ code

 #include <iostream>
 #include <string>
 #include <list>
 using namespace std;


#define        MAX_NAME_SIZE        8        //名字最长8个字节

typedef struct ST
{
    int        iID; 
    char    Name[MAX_NAME_SIZE];
} StudentType;


typedef list <ST>  SLinkList;


C/C++ code
SLinkList m_sLinkList;

C/C++ code

    ST m_st;
    m_st.iID = 10000;
    m_st.Name[0] = 'A';
    m_st.Name[0] = 'd';
    m_st.Name[0] = 'm';
    m_st.Name[0] = 'i';
    m_st.Name[0] = 'n';

    m_sLinkList.push_back(m_st);
    m_sLinkList.push_back(m_st);
    m_sLinkList.push_back(m_st);

    m_st.iID = 10002;
    m_st.Name[0] = 'T';
    m_st.Name[0] = 'e';
    m_st.Name[0] = 's';
    m_st.Name[0] = 't';
    m_sLinkList.insert(m_sLinkList.begin()++,//位置
                        3,        //个数
                        m_st);    //值

    m_sLinkList.sort(SLinkList);//如果排序,我想先根据iID排序再根据Name排序



------解决方案--------------------
探讨
C/C++ code
typedef struct ST
{
int iID; 
char Name[MAX_NAME_SIZE];
bool operator < (const ST & val) const //重载 < 操作符,告诉排序算法怎样才算“小于”
{
if(iID==val.iID)
{
return strcmp(Name,val.Name)<0;
}
return iID<val.iID;
}
} StudentType;


正解




应该就是这样了,顺手写的,没测试