解题思路:
使用C++中的STL库中的优先队列,使用结构体定义一个比较函数进行排序,之后在主函数中使用优先队列输出
注意事项:
注意结构体里边比较逻辑的写法,这是容易出错的地方
参考代码:
#include<iostream>
#include<queue>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
struct cmp{
bool operator()(int &a, int &b) const
{
//按照从绝对值大到小的顺序排列
return abs(a) < abs(b);
}
};
int main(){
int n, m;
while(cin >> n && n != 0){
priority_queue<int, vector<int>, cmp> q;
while(n--){
cin >> m;
q.push(m);
}
while(!q.empty()){
int temp = q.top();
q.pop();
cout << temp << " ";
}
cout << endl;
}
return 0;
}
0.0分
0 人评分