基础实验5-2.2 电话聊天狂人(Map的使用+例题)

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)
文章字体风格:
红色文字表示:重难点
蓝色文字表示:思路以及想法

这里写目录标题

  • 1. #include < map>
    • 声明
    • Insert/erase
    • find
    • 操作符
    • size/empty/clear/begin/end
    • ***map函数总结
  • 2. 应用于什么类型题呢?
  • 3. 例题
    • map迭代器

1. #include < map>

map容器是一个键值对key-value的映射,其内部实现是一棵以key为关键码的红黑树。Map的key和value可以是任意类型,其中key必须定义小于号运算符。

声明

map<key_type, value_type> name;
例如:
map<long, long, bool> vis;
map<string, int> hash;
map<pair<int, int>, vector> test;
综上:map是可以改变数组角标的,也就是根据指定数组角标类型,这样就是可以把比如字符串类型作为数组的角标,这样我们去找指定字符串,通过数组就可以给它一个位置,之后可以存放该字符串对应的信息
size/empty/clear/begin/end均与set类似。

Insert/erase

与set类似,但其参数均是pair<key_type, value_type>。

find

h.find(x) 在变量名为h的map中查找key为x的二元组。

操作符

h[key] 返回key映射的value的引用,时间复杂度为O(logn)。
[]操作符是map最吸引人的地方。我们可以很方便地通过h[key]来得到key对应的value,还可以对h[key]进行赋值操作,改变key对应的value。

size/empty/clear/begin/end

均与set类似

***map函数总结

map<string,string>mp;
1.遍历
for(auto k : mp)
k.first;
k.second
(一般遍历的时候用)
2,头部迭代器
mp.begin()//返回指向map头部的迭代器map<string,int>::iterator it;
it = mp.begin();
//此时,it要用 ->
it->first;//注意,从这里可以得出,迭代器表示指针3.尾部迭代器
mp.end()//返回指向map末尾的迭代器
4.清除
mp.clear()//删除所有元素
5.计数
mp.count()//返回指定元素出现的次数,一键一值,所以count也用来查找
6.判空
mp.empty()//如果map为空返回0,否则返回1
7.查找
mp.find()//返回查找元素所在的迭代器,找不到返回mp.end();
8.二分
mp.lower_bound()//返回键值>=给定元素的第一个位置
mp.upper_bound()//返回键值>给定元素的第一个位置
9,大小
mp.size()//返回map中元素的个数
10.交换
swap()//交换两个map

2. 应用于什么类型题呢?

适用于 很多 其他类型的数据 分别对应相应的数据,这样的话,就可以用map存储

3. 例题

在这里插入图片描述
原题链接
思路:

1. 数字太长了,可以用字符串存储
2. 比较出现的次数,那就用map存储

3. map[x]++ 则就表示 x角标 入map中

#include <iostream>
#include <string>
#include <map>
using namespace std;int main() {int N, tmp = 0, count;string a, b;cin >> N;map<string, int>mp;while (N-- && cin >> a >> b)mp[a]++, mp[b]++;for (auto& it : mp) if (it.second == tmp)count++;else if (it.second > tmp)count = 1, tmp = it.second, a = it.first;cout << a << " " << tmp;if (count > 1)cout << " " << count;return 0;
}
#include<iostream>
#include<map>
#include<string>
#include<cstdio>
#define ios ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
using namespace std;
map<string,int> m;
int main()
{iosint n;cin>>n;int ans=0;while(n--){string x;cin>>x;m[x]++;ans=max(ans,m[x]);cin>>x;m[x]++;ans=max(ans,m[x]);}int ret=0;string a;map<string,int>::iterator it;for(it=m.begin();it!=m.end();it++){if(it->second==ans){if(ret==0)a=it->first;ret++;}}if(ret>1)cout<<a<<" "<<ans<<" "<<ret;elsecout<<a<<" "<<ans;
}

map迭代器

map迭代器相当于指针,通过map<string,int>::iterator it; it = map.begin() 可以得到map相对应的指针地址,然后it -> first 和 if-> second得到 角标和相应的数据
还可以用 auto& it = map;这样的话就可以用 it.first 和 it.second

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61827.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人员抽烟行为识别检测算法

人员抽烟行为识别检测系统基于YOLOv7 技术方法&#xff0c;对画面开展724h无间断分析。大大提升效率&#xff0c;减少了人力成本。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备。除了架构优化之…

程序员哥们儿在面试提问环节被挂了!

扫 码 带 你 走 进 程 序 员 的 欢 乐 源 泉 最近看到一张网友分享的聊天截图&#xff1a; 一程序员面完技术三面&#xff0c;最后面试官说很不错&#xff0c;面试通过了&#xff0c;问这个人还有什么问题&#xff0c;于是这位“耿直”程序员说&#xff1a;你们面试太简单了&am…

培训机构出来的同学背了这些面试题,拿了12K,把我给羡慕坏了

前言&#xff1a; 首先介绍一下我的同学&#xff0c;专科毕业应用电子技术专业&#xff0c;已经毕业快两年了。因为专业的原因工作一年觉得没什么发展前途就想转行&#xff0c;身为他的“好基友”&#xff0c;他觉得我这个工作挺好的&#xff0c;就咨询了我一下&#xff0c;经…

软件测试整套面试流程要注意这些事情,做好了真的能收到offer【建议收藏】

小编热衷于收集整理资源&#xff0c;记录踩坑到爬坑的过程。希望能把自己所学&#xff0c;实际工作中使用的技术、学习方法、心得及踩过的一些坑&#xff0c;记录下来。也希望想做软件测试的你一样&#xff0c;通过我的分享可以少走一些弯路&#xff0c;可以形成一套自己的方法…

面试施工员的时候你知道会问什么问题吗?

一、施工员常见面试题有哪些? 1、钢筋锚固长度的规定。 2、梁模板模起供高度。 3、混凝土道路施工有什么特别注意的地方吗? 4、施工现场用水量的计算依据。 5、外墙裂缝的产成原因? 6、你所知道的材料预控措施有哪些? 7、讲一讲你的工作经历&#xff0c;以前从事哪些项目的…

软件测试面试技巧 这么准备,拿下心仪offer不是问题

拥有一个心仪的offer&#xff0c;是每个软件测试工程师们都梦寐以求的事情&#xff0c;那如何才能通过最后的面试一关&#xff0c;拿到offer呢&#xff1f; 俗话说&#xff0c;知己知彼百战不殆&#xff0c;作为测试员&#xff0c;在面试前对面试官可能提出的问题进行总结和准…

软件测试面试话术 这样准备,让你成功拿到高薪offer

面试就是就是进入岗位前的临门一脚&#xff0c;如果因为准备不足而导致面试失败那可就亏大了&#xff01;因此&#xff0c;为了帮助大家提高面试成功率&#xff0c;尽快拿到高薪offer&#xff0c;我为你们准备了一套面试话术以及技巧&#xff0c;希望对即将参加软件测试面试的你…

今天面试招了个18K的人,从腾讯出来的果然都有两把刷子···

公司前段时间缺人&#xff0c;也面了不少测试&#xff0c;前面一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在15-20k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是4年工作经验&#xff0c;但面试中&#xff0c;不…

软件测试100%(打包票必问)面试题:介绍下你做过得项目、学会必拿offer

小编热衷于收集整理资源&#xff0c;记录踩坑到爬坑的过程。希望能把自己所学&#xff0c;实际工作中使用的技术、学习方法、心得及踩过的一些坑&#xff0c;记录下来。也希望想做软件测试的你一样&#xff0c;通过我的分享可以少走一些弯路&#xff0c;可以形成一套自己的方法…

开学季,孩子们怎么学习?

&#xff08;1&#xff09;学习 我首先想告诉大家一下&#xff1a; 素质教育靠家庭知识教育学校技能教育靠自己 你想在学校里学到工作挣钱的本事&#xff0c;你想在企业里学到工作挣钱的本事&#xff0c;门儿都没有&#xff0c;这个大家要有清醒的认识。 一、小学学什么 小学其…

优秀期刊《儿童绘本》CN刊物征稿

《儿童绘本》 《儿童绘本》是由国家新闻出版管理部门批准&#xff0c;由吉林省舆林报刊发展有限责任公司主管主办&#xff0c;国内外公开发行的全国优秀期刊。国内统一连续出版物号CN 22-1406/J&#xff1b;国际标准连续出版物号ISSN 1673-954X 以“普及绘本知识&#xff0c;推…

steam/csgo搬砖靠谱吗?难做吗?

Steam-csgo搬砖难不难做&#xff1f;我告诉你并不难&#xff0c;任何行业都是入局简单&#xff0c;但是你先搞懂里面的思维逻辑&#xff0c;稳定利润的话就需要花点功夫~有两条路可走&#xff0c;一就是不断踩坑试错&#xff0c;用自身去换取经验。第二就是知识付费&#xff0c…

备战系统分析师——第2章经济管理部分

正在备考2023年5月底的软考--系统分析师。这次让我们聊一下第2章的经济管理部分。 首先是会计常识&#xff0c;这是我第一次接触会计知识&#xff0c;很多东西还是很新奇的。会计计价有两种方式&#xff0c;历史成本计价和公允价值计价&#xff0c;我理解历史成本计价就是在做会…

【人工智能】突破界限:LLM 大语言模型在推动基于AI的语言处理方面的极限,大模型发展历史,对AI带来的变革,对各行各业的影响,未来的发展趋势,大模型的能力极限在哪里?

突破界限:大型语言模型推动基于AI的语言处理发展 文章目录 突破界限:大型语言模型推动基于AI的语言处理发展1. 引言2. 大型语言模型的发展史时间线关键阶段3. 基于大型语言模型的AI变革4. 对各行各业的影响各行各业影响LLM的应用5. 未来的发展趋势6. 大型语言模型的能力极限总…

学生如何使用chatGTP提升学习能力?

短短两三个月&#xff0c;ChatGPT炸圈范围越来越大&#xff0c;很快就从科技圈来到了教育界。前段时间&#xff0c;北密歇根大学的哲学教授Antony Aumann在批改论文的过程中发现一篇论文好到令人感到震惊。这篇论文逻辑严谨&#xff0c;措辞得当&#xff0c;结构清晰&#xff0…

搭建一个定制版New Bing吧

项目介绍 项目地址&#xff1a;https://github.com/adams549659584/go-proxy-bingai 引用项目简介&#xff1a;用 Vue3 和 Go 搭建的微软 New Bing 演示站点&#xff0c;拥有一致的 UI 体验&#xff0c;支持 ChatGPT 提示词&#xff0c;国内可用&#xff0c;国内可用&#xff…

用AI生成思维导图的方法

写在前边&#xff1a; 这篇文章很简单&#xff0c;只为给自己做个记录。并且做一个简单的思考&#xff1a;明明很容易的东西&#xff0c;一旦陷入了思维困境中&#xff0c;就无法找到出去的路。这时候需要扩展思维或者他人提点。 正文&#xff1a; 就挺尴尬&#xff0c;之前…

AI 迈入职场,人类该如何保持竞争力?

AI&#xff08;人工智能&#xff09;这个术语最早是在 1956 年由约翰麦卡锡&#xff08;John McCarthy&#xff09;等人提出的。当时&#xff0c;人们对 AI 的定义是&#xff1a;能够模拟人类思维过程的机器。 然而&#xff0c;最初的 AI 系统往往是基于人类专家知识的规则系统…

“血洗”Twitter,“杀疯了”的马斯克究竟想干啥?

周末有个朋友给我说&#xff1a;马斯克“血洗”Twitter了&#xff0c;你有什么评价&#xff1f; 我去搜了一下&#xff0c;果然&#xff0c;马斯克“杀疯了”。 440亿美元收购Twitter以后&#xff0c;他立刻解雇了公司的CEO, CFO , CCO ... CXO。 然后让程序员打印30-60天的代码…

数字化转型服务平台:面向新竞争格局的企业竞争力建设

数字化转型服务平台&#xff1a;面向新竞争格局的企业竞争力建设 叶雅珍1,2, 朱扬勇1,2 1 复旦大学计算机科学技术学院&#xff0c;上海 200438 2上海市数据科学重点实验室&#xff0c;上海 200438 论文引用格式&#xff1a; 叶雅珍, 朱扬勇. 数字化转型服务平台&#xff1a;面…