#include <iostream>
#include <queue>
using namespace std;
class datapair{
int key;
char data;
public:
datapair(int k,char d):key(k), data(d){}
int getkey(){return key;}
char getdata(){return data;}
};
struct dataComparison{
bool operator () ( datapair * left, datapair * right){
return left->getkey() > right->getkey();
}
};
typedef priority_queue<datapair *,vector<datapair* >,dataComparison> result;
int main(){
result r;
r.push(new datapair(5,'B'));
r.push(new datapair(2,'A'));
r.push(new datapair(1,'D'));
r.push(new datapair(4,'F'));
r.push(new datapair(8,'A'));
r.push(new datapair(9,'C'));
while(!r.empty()){
cout << r.top()->getdata() << "\n";
// 最も学籍番号が小さいデータを表示
r.pop(); // 実際にはここで削除される。
}
return(0);
}
|