zoukankan      html  css  js  c++  java
  • STL之map排序

    描述

    STL的map中存储了字符串以及对应出现的次数,请分别根据字符串顺序从小到大排序和出现次数从小到大排序。

    部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。

    int main()
    {
        map<string, int> sm;
        int n;
        cin>>n;
        while(n--)
        {
            string s;
            int x;
            cin>>s>>x;
            sm[s] = x;
        }
        SortOutput(sm);
        return 0;
    }

    输入 

    输入数据第一行为正整数n,接下来包含n行,每行一个字符串和出现的次数。

    所有字符串和次数均不相同。

    输出

    分别按照字符串和出现次数排序,并输出map中的键和值,每行一对。

    样例输入

     5
    abc 1
    bcd 3
    cde 2
    def 5
    efg 4

    样例输出

     abc 1
    bcd 3
    cde 2
    def 5
    efg 4
    abc 1
    cde 2
    bcd 3
    efg 4
    def 5

    今天做训练赛的时候知道一道题要用map,就是不会,回来仔细学了map,它的键-值对应的关系方便解决一对一的数据,很是nice

    #include <string>
    #include <iostream>
    #include <vector>
    #include <map>
    #include<algorithm>
    using namespace std;
    void SortOutput(map<string,int>&sm)
    {
        map<string,int >::iterator it;
        vector<int> v;
        for(it=sm.begin();it!=sm.end();++it)
        {
            cout<<it->first<<" "<<it->second<<endl;//map内部默认升序排序,不能用sort
            v.push_back(it->second);
        }
        sort(v.begin(),v.end(),less<int>());//默认降序,升序用greater<int>();
        int n;
        for(int i=0;i<v.size();i++)
        {
            map<string,int>::iterator it;
            for(it=sm.begin();it!=sm.end();it++)
            {
                if(v[i]==it->second)
                {
                    cout<<it->first<<" "<<it->second<<endl;//it->first访问键,it->second访问值
                }
            }
        }
    }
    int main()
    {
        map<string, int> sm;
        int n;
        cin>>n;
        while(n--)
        {
            string s;
            int x;
            cin>>s>>x;
            sm[s] = x;
        }
        SortOutput(sm);
        return 0;
    }

     

  • 相关阅读:
    出栈序列的可能性判定
    阿里离线数据处理平台2013暑期学校
    终于算完了这道『1+1』
    数据结构学习笔记之一 链表
    经典解释监视器和对象锁
    Sybase中字符串替换函数 STR REPLACE
    使用Arrays sort 方法進行排序
    clustered和nonclustered索引的区别
    Java序列化的作用和反序列化
    Java多线程下载并具断点续传功能JAR
  • 原文地址:https://www.cnblogs.com/andrew3/p/8835970.html
Copyright © 2011-2022 走看看