flameking


私信TA

用户名:201914040128

访问量:2752

签 名:

等  级
排  名 15438
经  验 838
参赛次数 0
文章发表 3
年  龄 19
在职情况 学生
学  校 HUAS
专  业 计科

  自我简介:

解题思路:由于map容器默认会对键进行升序排序,因而我们可以把绝对值作为键,最后对值输出就行了;


参考代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <map>

using namespace std;

int main()
{
    int n;
    while (~scanf("%d", &n) && n!=0)
    {
        map< int, int, greater<int> >myhash;    //由于默认对键做升序排序,因此需要更改为降序;
        for(int i=0; i<n; i++)
        {
            int tmp;
            cin >> tmp;
            myhash[abs(tmp)] = tmp;
        }
        map<int, int>::iterator it;
        for(it=myhash.begin(); it!=myhash.end(); it++)
            cout<< it->second << " ";        //最后输出值(it->first:输出键)
        cout << endl;
    }
    return 0;

}


 

0.0分

2 人评分

  评论区

  • «
  • »