题解 | #字符串排序# 基于优先队列
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
#include <functional>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
int main() {
int num;
cin >> num;
priority_queue<string,vector<string>,greater<string>> se;
for(int i=0; i<num; i++){
string tmp;
cin >> tmp;
se.push(tmp);
}
while(!se.empty()){
cout << se.top() << endl;
se.pop();
}
return 0;
}
// 64 位输出请用 printf("%lld")
由于题目中没有说明元素一定不重复,所以无法用有序集合的方式进行排序。所有要用“优先队列”这种数据结构。
值得注意的是,对于排序这项功能,C++提供的容器已经实现的很好了。大部分都是考虑找一个合适的数据结构去实现即可。

