c++STL库map的运用——昵称

Windows环境下IBSIMU的安装 本文主要介绍离子束仿真程序IBSIMU在Windows环境下的安装。 阅读详情

MAP

map为c++stl库的一个关联函数,可以实现快速查找,复杂度为O(logn)。

map实现从键到值的映射,其效率高因为它用平衡二叉树来储存与访问 。(不用看了,反正我看不懂。)

总之呢,这个东西就可以让(bool)b[“abababab”]=1成为现实,十分好用。

(抄袭自己某篇博客)

一道例题:

昵称

题目描述

ZSUQ Messenger是一款跟腾讯QQ类似的软件。该软件的每个注册用户都拥有一个昵称以标识其身份。由于用户数很多,因此一个昵称可能会被许多不同的用户使用到,例如“Tom”,“Marry”,“Kate”等一些常用名会被频繁使用到。不过ZSUQ公司通过最近的一项调查发现,并没有超过5000个不同的昵称被用户使用到。   作为ZSUQ公司的一个员工,公司将提供给你一份所有用户的昵称名单,并要求你提交一份报告,告诉大家对于每个昵称都有多少用户在使用。

Input

数据第一行是一个整数N,(1<=N<=100,000),下面N行给出这N个用户的昵称名。每一个昵称名用一个不超过100个字符的字母字符串表示。注意昵称名称对大小写不敏感。

Output

输出要给出你对昵称用户的统计。按字符串顺序输出每个昵称,并输出该昵称有多少个用户在使用,中间用一个空格隔开。注意一行的首尾不要有多余空格,所有的昵称名均转换为小写字符输出。

Sample Input

4
Carp
infish
peipei
carp

Sample Output

carp 2
infish 1
peipei 1

思路

这道题很显然使用哈希,但是我们有map!!!

代码

#include<iostream>
#include<cstdio>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
int n;
string zf[1000001];
string read(){//快读
	string a;
	char ch=getchar();
	while (ch<'a'&&ch>'Z'||ch>'z'||ch<'A') ch=getchar();
	while (ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') {
		if (ch>='a'&&ch<='z') a+=ch;
		else if(ch>='A'&&ch<='Z')a+=(ch+32);
		ch=getchar();
	}
	return a;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		zf[i]=read();
	map<string,int>f;//f记录出现过的数量
	map<string,bool>b;//b记录下面输出过没有
	for(int i=1;i<=n;i++) 
		f[zf[i]]++;//记录
	sort(zf+1,zf+n+1);//题目要求按字典序输出,排序
	for(int i=1;i<=n;i++)
		if(!b[zf[i]]){//没输出过
			b[zf[i]]=1;//输出过
			printf("%s %d\n",zf[i].c_str(),f[zf[i]]);//输出
		}
}

END!!!

THANK YOU!!!

RAP 通用搜索实战:用 CDS 注解打造 Fiori Elements 的一体化检索体验 RAP应用中的通用搜索优化实践:通过CDS注解实现高效模糊匹配 摘要:本文介绍了在SAP RAP应用中优化列表搜索体验的方法。通过CDS注解配置通用搜索功能,用户无需指定字段即可在多字段中模糊匹配数据。关键实现包括:1)使用@Search.searchable启用全局搜索;2)通过@Search.defaultSearchElement标记核心搜索字段;3)利用@Search.fuzzinessThreshold设置容错阈值(0.7-1.0)处理拼写错误;4)使用@Search.ranking优化结果排序。 阅读详情

相关推荐

内网环境下 OpenSSL 与 OpenSSH 安全升级实战指南:从 9.9p2 离线部署到回滚方案

本文详细介绍了内网环境下OpenSSL与OpenSSH的安全升级实战指南,重点涵盖从9.9p2版本离线部署到回滚方案的全流程。通过备份策略、动态库处理、权限修复等关键步骤,确保升级过程安全可靠,特别适合金融、政务等敏感行业的内网服务器安全加固。

weixin_30566063的博客 510

游戏中的名字随机生成代码

{优快云:CODE:dsf}

firebird321的专栏 2万+

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

Hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量...

Hadoop环境搭建教程 471

C++使用map实现模糊查询

C++使用STL中的map实现图书管理系统模糊查询 1. 思路 字符串实现模糊查询。 原理是将一个字符串根据一定的步长将其分割并且排列组合成若干个子串,并且将这些子串作为map的key,这样可以做到输入一部分字符就可以查询出内容来。 例如: “《算法设计与分析》这本书,可以按照步长为1将其拆分成: 1. 算,算法,算法设,算法设计.....算法设计与分析。 2. 法,法设.....法设计与分析。 .............................

m0_54644067的博客 2360

ArcGIS小白必看:如何用3D Analyst工具将二维点线秒变三维模型(附详细步骤)

本文为ArcGIS初学者提供了利用3D Analyst工具将二维点、线数据快速转换为三维模型的完整指南。详细讲解了基于属性字段和数字高程模型(DEM)两种核心方法,并附上从数据准备、工具操作到三维场景可视化与问题排查的详细步骤,帮助用户轻松实现从平面到立体的空间数据建模。

nft7creator的博客 139

【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南

重新定义了 AI 图像生成的产业标准。它不仅是“平民化的视觉工厂”,更是推动内容生产从“创意试错”转向“精准制造”的关键工具。未来,随着视频生成能力的加入(谷歌计划支持“文字指令 - 动态场景 - 多平台适配”全流程),Nano Banana 有望进一步颠覆影视、广告等领域的创作范式。:批量生成多场景图,模特姿态自然,服装褶皱和材质细节高度一致,节省 90% 拍摄成本。模型的非正式代号,是一款革命性的 AI 图像生成与编辑工具,主打。:生成细节丰富的厨师特写,光影自然,皮肤纹理和刀具反光逼真。

专注:太空算力、AI infra、异构调度、大模型成本工程 885

C++进阶 —— map

关联容器map;

NapoleonCoder的博客 1387

LLCC68芯片系统架构与LoRa驱动开发核心解析

LoRa射频收发器是低功耗广域物联网(LPWAN)的关键组件,其本质是集成了调制解调器、协议引擎、数据缓冲区与电源管理的专用SoC。理解其工作模式状态机(Sleep/Standby/TX/RX)与SPI主机接口时序规范,是实现稳定通信的基础。LLCC68通过寄存器映射与命令集双接口抽象硬件控制,支持LoRa扩频调制与FSK兼容模式,具备高链路预算(157 dB)和DC-DC/LDO动态电源切换能力。典型应用场景包括远距离传感器节点、智能表计与工业无线监测系统。本文深入剖析LLCC68的信号链路径、中断机制与

weixin_29859471的博客 281

C++中 map 使用详细说明

一、map的介绍 map 翻译为映射,map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。 二、map的定义 map 需要确定映射前类型(键 key)和映射后类型(值 value),所以需要在 <> 内填写两个类型,其中第一个是键的类型,第二个是值的类型。 map<typename1,typename2> mp; 注意:如果是字符串到整数的映射,必须使用 string 而不能用 char 数组。 map<str...

但行好事,莫问前程 1万+

康复训练监测系统:基于YOLOv8的患者动作规范识别

本文系统介绍了基于YOLOv8的康复训练动作规范识别系统,从理论背景、数据准备、模型训练、推理应用到UI界面,提供了完整技术链条及代码示范。希望对康复领域的智能监测应用提供参考和借鉴。

YOLO 453

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

go语言的map以及红黑树的map

结论: 1. go语言自带的map是基于hash表实现的 2. c++语言中map是基于红黑树实现的 3. go语言很多第三方库中提供了基于红黑树map的实现 这里我们推荐的是由Social Explorer团队开源的gods框架,简称"上帝",其实是GoDS(Go Data Structures),是数据结构与算法相关的框架 官网:https://www.socialexplor...

papaya的博客 3487

win7 vs2012+wdk8.0 搭建wdf驱动开发环境

开发环境搭建: 系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi (1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建windows drivers类型的工程。 注:vs2012不能安装wdk8.1,wdk8.1必须安装在vs2013上 下载链接:http://msdn.microsoft.com/zh-cn/win...

技术联盟 5342

C++STL——map/multimap容器详解

map的特性是,所有元素都会根据元素的键值自动排序。map所有的元素都是pair,同时拥有实值和键值,pair的第一元素被视为键值,第二元素被视为实值,map不允许两个元素有相同的键值。map和multimap都是以红黑树为底层实现机制。 map容器的迭代器: map提供了双向迭代器。 我们可以通过map的迭代器改变map的键值吗?答案是不行,因为map的键值关系到map元素的排列规则,任意改变map键值将会严重破坏map组织。如果想要修改元素的实值,那么是可以的。

阿标de杂货铺 1798

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

昵称的输入(map的运用)

A new e-mail service “Berlandesk” is going to be opened in Berland in the near future. The site administration wants to launch their project as soon as possible, that’s why they ask you to help. You’r...

weixin_46446866的博客 302

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STL之map

概述 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对。它提供基于key的快速检索能力,在一个map中key值是唯一的。map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(reverse_iterator)。 map要求能对key进行,因此map上的迭代器也是递增有序的。如果对于元素并不需要

skiing_886的专栏 929

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C++ Internals: STL之Map

概述 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对。它提供基于key的快速检索能力,在一个map中key值是唯一的。map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(reverse_iterator)。 map要求能对key进行<操作,且保持按key值递增有序,因此ma...

ddnxwnw0091的博客 126

c++ stl-map改名字题解

Misha hacked the Codeforces site. Then he decided to let all the users change their handles. A user can now change his handle any number of times. But each new handle must not be equal to any handle t...

素璃的博客 362

[STL基础]map映射,hash_map

关联容器,通过 键 存储和读取元素。顺序容器,通过元素在容器中的位置顺序存储和读取元素。 关联容器和顺序容器的本质差别在于:关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素。 map映射 map是标准关联式容器之一,map是一个键值对序列,即(key,value)对,是二元容器。它提供了基于key的快速检索能力,在一个map中key值是唯一的。m

超越 1911

R - Misha and Changing Handles—STL(map)

Misha hacked the Codeforces site. Then he decided to let all the users change their handles. A user can now change his handle any number of times. But each new handle must not be equal to any handle t

qq_21820377的专栏 1139

【C/C++】C语言开发者必读:迈向C++的高效编程之旅

C语言开发者必读:迈向C++的高效编程之旅。C++与C语言在语法上有很多相似之处,这使得C语言开发者在学习C++时能够更容易上手。然而,C++在C语言的基础上增加了许多新的特性和概念,如类、对象、继承、多态、模板、异常处理等。这些特性使得C++在编程时更加灵活和高效,但也需要我们进行学习和理解。

科技改变人类,技术成就未来 8357

STL之MAP关联容器

概述 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对。它提供基于key的快速检索能力,在一个map中key值是唯一的。map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(reverse_iterator)。 map要求能对key进行,因此map上的迭代器也是递增有序的。如果对于元素并不需要

路灬自己选 1114

STL之Map

概述 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对。它提供基于key的快速检索能力,在一个map中key值是唯一的。map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(reverse_iterator)。 map要求能对key进行&lt;操作,且保持按key值递增有序,因此map上的迭代...

weixin_34277853的博客 262
上一篇: 2020.01.15【NOIP提高组】模拟B组——T3分球
下一篇: 2020.01.17【NOIP提高组】模拟B 组总结
jay_zjy1022
博客等级 码龄7年 11粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值