```cpp
include include include using namespace std; struct Patient { string id; int age; }; bool compareByAge(const Patient &a, const Patient &b) { if (a.age >= 60 && b.age < 60) return true; if (a.age < 60 && b.age >= 60) return false; return a.age > b.age; } int main() { int n; cout << "请输入病人个数: "; cin >> n; priority_queue for (int i = 0; i < n; ++i) { Patient p; cout << "请输入病人ID和年龄(用空格隔开): "; cin >> p.id >> p.age; pq.push(p); } while (!pq.empty()) { Patient p = pq.top(); pq.pop(); cout << "就诊病人ID: " << p.id << endl; } return 0; } ``` 程序说明: `Patient` 结构体用于存储病人的ID和年龄。 `compareByAge` 函数用于比较两个病人的年龄,优先处理老年人(年龄 >= 60岁),年龄相同的按登记的先后顺序排序,非老年人按登记的先后顺序排序。 输入病人个数 `n`。 使用优先队列 `pq` 存储病人信息,队列按照 `compareByAge` 函数定义的规则排序。 循环输入每个病人的ID和年龄,并将其加入优先队列。 依次从优先队列中取出病人,输出其ID,直到队列为空。 输入输出示例: ``` 请输入病人个数: 5 请输入病人ID和年龄(用空格隔开): 021033010158 67021033 请输入病人ID和年龄(用空格隔开): 021075004003 15010158 请输入病人ID和年龄(用空格隔开): 75102012 30 请输入病人ID和年龄(用空格隔开): 30 20 就诊病人ID: 021033010158 就诊病人ID: 021075004003 就诊病人ID: 75102012 就诊病人ID: 30 ``` 这个模板可以根据具体需求进行扩展和修改,例如增加更多的病人信息字段或实现更多的功能。结构体定义
比较函数
主函数