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=;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 ;
}
STL之map排序的更多相关文章
- stl之map 排序
排序问题,STL中默认是采用小于号来排序的,因为设置int等类型做key,它本身支持小于号运算,在一些特殊情况,比如关键字是一个结构体,涉及到排序就会出现问题,因为它没有小于号操作,insert等函数 ...
- STL对map排序
// sort start typedef struct{ ... }Node; // Map的键是字符串,值是结构体.虽然有自动排序特性,但是按字符串的排序并不能符合要求.此时,Map的key可以视 ...
- C++ STL中Map的按Key排序和按Value排序
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区 分),我们用map来进 ...
- C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET
C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...
- STL容器——对map排序
STL容器(三)——对map排序 对于map的排序问题,主要分为两部分:根据key排序:根据value排序.下面我们就分别说一下~ 1. 根据key进行排序 map默认按照key进行升序排序 ,和输入 ...
- C++ STL中Map的按Key排序跟按Value排序
C++ STL中Map的按Key排序和按Value排序 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定 ...
- 对vector等STL标准容器的排序操作
[+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...
- STL中map与hash_map的比较
1. map : C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N) 2. hash_map : 使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O ...
- 关于STL的map的注意事项
关于map是什么,这里就不多叙述了. 直接正题,常用的map插入操作有三种方法:通过pair<key_type,value_type>.通过value_type插入数据.还有一种类似于数组 ...
随机推荐
- POJ 1979 DFS
题目链接:http://poj.org/problem?id=1979 #include<cstring> #include<iostream> using namespace ...
- (转)SQLite内置函数
一.聚合函数: SQLite中支持的聚合函数在很多其他的关系型数据库中也同样支持,因此我们这里将只是给出每个聚集函数的简要说明,而不在给出更多的示例了.这里还需要进一步说明的是,对于所有聚合函数而言, ...
- Jmeter-基于Ubuntu运行
这几天折腾了很久,整合了一套接口自动化的持续集成工具,先从最基础的运行Jmeter说起.由于我是用Docker部署的持续集成环境,所以接口运行必须在服务器上 一:在Linux服务器先安装jdk 1:先 ...
- Alpha冲刺——Day2
一.合照 二.项目燃尽图 三.项目进展 图形界面基本完成 接口文档框架完成,接下来将会不断细化填充 登录界面向服务器请求数据进行ing 四.明日规划 1.注册登录接口能够完成 2.研究idea实现获得 ...
- 20162327WJH程序设计与数据结构第七周总结
学号 20162327 <程序设计与数据结构>第7周学习总结 教材学习内容总结 1.关于接口的理解:接口可以理解为比较纯粹的抽象类 2.接口的特点:用interface定义接口 接口中的方 ...
- iOS开发-添加圆角效果高效实现
圆角(RounderCorner)是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受.但很多人并不清楚如何设置圆角的正确方式和原理.设置圆角会带来一定的性能损耗,如何提高性能是另一个需要重点 ...
- scrapy 模拟登陆
import scrapy import urllib.request from scrapy.http import Request,FormRequest class LoginspdSpider ...
- iOS开发-OC中TabView的编辑
UITableView编辑 1> UITableView 编辑流程 2> UITableView 编辑步骤(四步) ① 第一步 : 让 TableView 处于编辑状态(在按钮点击事件方法 ...
- 《高级软件测试》web测试实践--12月30日记录
考完数学,我们正式开始web测试实践的作业,今天,我们主要进行了方案的选择和人员的分工.任务计划和安排如上图所示. 任务进展:完成题目选择和人员分工: 遇到问题:暂无: 下一步任务:完成软件评测.用户 ...
- ubuntu1604使用源码方式安装ruby2.5.0
本文介绍ubutntu1604环境下源代码方式安装ruby 版本2.5.0 如果内存小于2G可以开启虚拟内存,下面的命令开启4G虚拟内存 sudo dd if=/dev/zero of=/swap b ...