原理,重载小于符号。
运行截图如下:
代码如下:
//map的重载、排序
#include <map>
#include <string>
#include <iostream>
#include <time.h>
using namespace std;
typedef struct tagStudentInfo{
int nID;
string strName;
bool operator<(tagStudentInfo const &_A)const{
if (nID < _A.nID)
return true;
if (nID == _A.nID)
return strName.compare(_A.strName) < 0;
return false;
}
}StudentInfo, *PStudentInfo;
int main(){
//学生信息映射分数
map<StudentInfo, int>mapStudent;
map<StudentInfo, int>::iterator iter;
StudentInfo studentInfo;
studentInfo.nID = 1;
studentInfo.strName = "小明";
mapStudent.insert(pair<StudentInfo, int>(studentInfo, 90));
studentInfo.nID = 2;
studentInfo.strName = "小红";
mapStudent.insert(pair<StudentInfo, int>(studentInfo, 80));
for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
cout << iter->first.nID << " " << iter->first.strName << " " << iter->second << endl;
cout << endl;
getchar();
return 0;
}