c++ STL map简介

2023-11-04

首先头文件,

#include<map>

反正我用

#include<bits/stdc++.h>

然后就是创建一个map:

map<string,int>mymap;//类似于一个字典的映射关系,string和int可以改成其他的类型
mymap是你定义的map的名字,可以自己改
string可以改为pair<int,int>来表示两个数之间存在关系

再就是添加元素啦:

//第一种方法是用类似于数组的方法添加:
mymap[0]=hihihi;
//第二种是用insert插入:
mymap.insert(pair<int,string>(1,"hahaha"));
//其它的方法:http://t.zoukankan.com/wuchunming-p-3780677.html

map排序:

//先定义一个结构体来规定排序方式
struct rule{
	bool operator()(int a,int b){
		return a>b;
	}
};


//再将此排序方式加入到map定义中:
map<char,int,rule>a;

然后就是输出啦:

	for(auto it=mymap.begin();it!=mymap.end();it++)
	cout<<it->first<<" "<<it->second;

 map呢有一个自动根据key值排序的功能,也就是it->first,这个很好用哦

看例题:

问题 E: 8.4.4 硬木种类-2

题目描述

某国有数百种硬木树种,该国自然资源部利用卫星成像技术编制了一份特定日期每棵树的物种清单。计算每个物种张所有种群的百分比。

输入

输入包括每棵树的物种清单,每行一棵树。物种名称不超过30个字符,不超过10000种,不超过1000000棵树。

输出

按字母顺序输出植物种群中代表的每个物种的名称,然后是占所有种群的百分比,保留小数点后4位。

样例输入 复制

Red Alder Ash Aspen Basswood Ash Beech Yellow Birch Ash Cherry Cottonwood Ash Cypress Red Elm Gum Hackberry White Oak Hickory Pecan Hard Maple White Oak Soft Maple Red Oak Red Oak White Oak Poplan Sassafras Sycamore Black Walnut Willow

样例输出 复制

Ash 13.7931 Aspen 3.4483 Basswood 3.4483 Beech 3.4483 Black Walnut 3.4483 Cherry 3.4483 Cottonwood 3.4483 Cypress 3.4483 Gum 3.4483 Hackberry 3.4483 Hard Maple 3.4483 Hickory 3.4483 Pecan 3.4483 Poplan 3.4483 Red Alder 3.4483 Red Elm 3.4483 Red Oak 6.8966 Sassafras 3.4483 Soft Maple 3.4483 Sycamore 3.4483 White Oak 10.3448 Willow 3.4483 Yellow Birch 3.4483

map直接秒杀!

#include<bits/stdc++.h>
using namespace std;
int main(){
    map<string,int>mymap;
    string temp;
    int num=0;
    while(getline(cin,temp))
    {
        mymap[temp]++;
        num++;
         
    }
    for(auto it=mymap.begin();it!=mymap.end();it++)
    {
        cout<<it->first<<" ";
        cout<<fixed<<setprecision(4)<<it->second*1.0/num*100<<endl;
    }
}

例题:

C - FF

Problem Statement

Takahashi runs an SNS "Twidai," which has

N users from user 1 through user

N. In Twidai, users can follow or unfollow other users.

Q operations have been performed since Twidai was launched. The i-th (1≤i≤Q) operation is represented by three integers Ti​, Ai​, and

Bi​, whose meanings are as follows:

  • If

Ti​=1: it means that user Ai​ follows user Bi​. If user Ai​ is already following user

  • Bi​ at the time of this operation, it does not make any change.
  • If
  • Ti​=2: it means that user Ai​ unfollows user Bi​. If user Ai​ is not following user
  • Bi​ at the time of this operation, it does not make any change.
  • If
  • Ti​=3: it means that you are asked to determine if users Ai​ and Bi​ are following each other. You need to print Yes if user Ai​ is following user Bi​ and user Bi​ is following user
    • Ai​, and No otherwise.

    When the service was launched, no users were following any users.

    Print the correct answers for all operations such that

    Ti​=3 in ascending order of

    i.

    Constraints

  • 2≤N≤109
  • 1≤Q≤2×105
  • Ti​=1,2,3 (1≤i≤Q)
  • 1≤Ai​≤N (1≤i≤Q)
  • 1≤Bi​≤N (1≤i≤Q)
  • Ai​=Bi​ (1≤i≤Q)
  • There exists
  • i (1≤i≤Q) such that
    • Ti​=3.
    • All values in the input are integers.

    Input

    The input is given from Standard Input in the following format:

     
    N 
    Q
    
    T1​ 
    A1​ 
    B1​
    
    T2​ 
    A2​ 
    B2​
    
    TQ​ 
    AQ​ 
    BQ​
    

    Output

    Print

    X lines, where X is the number of i's (1≤i≤Q) such that Ti​=3. The j-th (1≤j≤X) line should contain the answer to the j-th operation such that

    Ti​=3.


    Sample Input 1

    Copy

    3 9
    1 1 2
    3 1 2
    1 2 1
    3 1 2
    1 2 3
    1 3 2
    3 1 3
    2 1 2
    3 1 2
    

    Sample Output 1

    Copy

    No
    Yes
    No
    No
    

    Twidai has three users. The nine operations are as follows.

    • User
    1 follows user
  • 2. No other users are following or followed by any users.
  • Determine if users
  • 1 and 2 are following each other. User 1 is following user 2, but user 2 is not following user
  • 1, so No is the correct answer to this operation.
  • User
  • 2 follows user
  • 1.
  • Determine if users
  • 1 and 2 are following each other. User 1 is following user 2, and user 2 is following user
  • 1, so Yes is the correct answer to this operation.
  • User
  • 2 follows user
  • 3.
  • User
  • 3 follows user
  • 2.
  • Determine if users
  • 1 and 3 are following each other. User 1 is not following user 3, and user 3 is not following user
  • 1, so No is the correct answer to this operation.
  • User
  • 1 unfollows user
  • 2.
  • Determine if users
  • 1 and 2 are following each other. User 2 is following user 1, but user 1 is not following user
    • 2, so No is the correct answer to this operation.

    Sample Input 2

    Copy

    2 8
    1 1 2
    1 2 1
    3 1 2
    1 1 2
    1 1 2
    1 1 2
    2 1 2
    3 1 2
    

    Sample Output 2

    Copy

    Yes
    No
    

    A user may follow the same user multiple times.


    Sample Input 3

    Copy

    10 30
    3 1 6
    3 5 4
    1 6 1
    3 1 7
    3 8 4
    1 1 6
    2 4 3
    1 6 5
    1 5 6
    1 1 8
    1 8 1
    2 3 10
    1 7 6
    3 5 6
    1 6 7
    3 6 7
    1 9 5
    3 8 6
    3 3 8
    2 6 9
    1 7 1
    3 10 8
    2 9 2
    1 10 9
    2 6 10
    2 6 8
    3 1 6
    3 1 8
    2 8 5
    1 9 10
    

    Sample Output 3

    Copy

    No
    No
    No
    No
    Yes
    Yes
    No
    No
    No
    Yes
    Yes
    

     map直接秒杀:
     

    #include<bits/stdc++.h>
    using namespace std;
    
    
    int main()
    {
    	int n,q;
    	cin>>n>>q;
    	map<pair<int,int>,bool>mp;
    	while(q--)
    	{
    		int flag=0;
    		cin>>flag;
    		if(flag==1)
    		{
    			int a,b;
    			cin>>a>>b;
    			mp[{a,b}]=1;
    		}
    		if(flag==2)
    		{
    			int a,b;
    			cin>>a>>b;
    			mp[{a,b}]=0;
    		}
    		if(flag==3)
    		{
    			int a,b;
    			cin>>a>>b;
    			if(mp[{a,b}]&&mp[{b,a}])
    			cout<<"Yes"<<endl;
    			else
    			cout<<"No"<<endl;
    		}
    	}
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++ STL map简介 的相关文章

  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • PyCharm专业版破解

    0x01 下载JetbrainsCrack的jar包 下载链接 链接 百度云链接 提取码 8u4c 0x02 把JetbrainsCrack的jar包放入pycharm文件下的bin目录中 0x03 加上必要的文件代码 在bin目录下使用记
  • 题11:最短摘要的生成

    题目 Alibaba笔试题 给定一段产品的英文描述 包含M个英文单词 每个英文单词以空格分隔 无其他标点符号 再给定N个英文单词关键字 请说明思路并编程实现方法 String extractSurmary String descriptio
  • crout分解计算例题_化学方程式计算你真学会了吗?

    先看看视频 听听姚老师教的计算步骤吧 例题1 加热分解6 3g高锰酸钾 可以得到多少克氧气 分析 这道题是已知反应物的质量来求生成物的质量 即已知原料的质量求产品的质量 我们一起来看课本中的解题步骤 解 设加热分解6 3g高锰酸钾 可以得到
  • Java学习——String

    在上一篇我们讲到了一个必要重要的知识点 那就是Java中的类和对象 我们可以点击下面的链接来进行复习 CSDNJava学习 类和对象 上 AlwaysBeMyself的博客 CSDN博客CSDN 今天我们来讲下一个知识点 那就是Java中的
  • shift+空格,英文字母间距变大,半角全角转换

    shift 空格半角全角快捷键
  • 一文读懂舵机工作原理并运用(附代码)

    杂谈 自己拿到这一模块是也挺迷茫的 后来看了一些资料 也渐渐积累了些自己的理解 很多博文并没有将舵机讲明白 至少你待把PWM与角度如何换算讲清楚吧 所以笔者写这篇博文供大家学习掌握 如果你拿到一个舵机 该咋办 莫慌 往下看 第一步先要区分这
  • 【机器学习】树模型决策的可解释性与微调(Python)

    一 树模型的解释性 集成学习树模型因为其强大的非线性能力及解释性 在表格类数据挖掘等任务中应用频繁且表现优异 模型解释性对于某些领域 如金融风控 是极为看重的 对于树模型的解释性 我们常常可以通过输出树模型的结构或使用shap等解释性框架的
  • Jave Web 03 Cookie、Session

    1 会话 一个网站 如何证明你来过 客户端 服务端 服务端给客户端一个 信件 客户端下次访问服务端带上信件就可以了 cookie 服务器登记你来过了 下次你来的时候我来匹配你 seesion 2 保存会话的两种技术 1 cookie 客户端
  • Python爬虫入门教程!手把手教会你爬取网页数据

    其实在当今社会 网络上充斥着大量有用的数据 我们只需要耐心的观察 再加上一些技术手段 就可以获取到大量的有价值数据 这里的 技术手段 就是网络爬虫 今天就给大家分享一篇爬虫基础知识和入门教程 什么是爬虫 爬虫就是自动获取网页内容的程序 例如
  • 详解STM32 GPIO口中的推挽输出和开漏输出

    推挽输出 GPIO引脚线路经过两个保护二极管后 向上流向 输入模式 结构 向下流向 输出模式 结构 先看输出模式部分 线路经过一个由P MOS和N MOS管组成的单元电路 这个结构使GPIO具有了 推挽输出 和 开漏输出 两种模式 所谓的推
  • EduCoder_web实训作业--JavaScript学习手册九:字符串的常用方法

    第一关 请在此处编写代码 Begin var c a indexOf b var sum 0 while c gt 0 sum c c a indexOf b c b length return sum End 第二关 请在此处编写代码 B
  • jquery动态给下拉框select添加option

    jquery动态给下拉框select添加option 注意 有的框架如layui 需要额外添加form render 否则会失效
  • 华为ENSP的Stelnet、直连、串口连接、telnet连接登录

    华为ENSP设备登录的几种方式 一 直接打开终端窗口 启动设备后 直接双击设备即可 如下图所示 二 用ENSP中的PC连接线CTL到设备的console登录 步骤1 在左侧的连线中找到CTL线单击 如果没有CTL线说明ENSP的版本太低 如
  • 如何打印2019年每个月的第一个星期天的日期

    这是一个关于日期处理的题目 在这里我主要用了Calendar类的相关属性与方法 首先 我们来分析一下 我们可以从2019年1月1日 用while循环依次遍历 到2019年12月7日结束 每次加一天 利用if判断 满足在第一周且是周日的条件
  • 电脑重装系统后无法连接网络怎么处理

    最近小编的台式电脑重装系统后无法连接网络 发现很多朋友也有同样的情况 那么遇到这种情况我们要如何处理呢 下面小编就来为大家讲解一下台式电脑重装系统后无法连接网络处理方法 方法 步骤 方法一 检查本地连接问题 1 鼠标右键点击系统桌面上的 网
  • DocArray 0.20.0 发布!新增 Milvus 后端支持,更好地嵌套数据搜索,新增 RGB-D 格式的 3D 模型表示

    DocArray 是一个用于处理 传输和存储多模态数据的 Python 工具包 DocArray 提供便捷的多模态数据处理功能 具备基于 Protobuf 提供高性能的网络传输性能 同时也为多种向量存储方案提供统一的 API 接口 GitH
  • CTFShow-Web入门

    目录 爆破 web21 web22 web23 web24 web25 web26 web27 web28 爆破 web21 解题思路 考察burp的intruder模块 访问发现是前端验证 随便输入账号密码抓包发现是Basic认证 Bas
  • 【splishsplash】splishsplash入门使用

    本文的目地为总结splishsplash的入门使用方法 splishsplash是一个C 开源流体引擎 主要用于产生流体动画 它的核心算法是SPH法 资源汇总 github https github com InteractiveCompu
  • 数据挖掘之关联规则挖掘的一些定义

    一 算法定义 关联规则挖掘用于发现隐藏在大型数据集中的令人感兴趣的联系 所发现的模式通常用关联规则或频繁项集的形式表示 关联规则反映了一个事物与其他事物之间的相互依存性和关联性 如果两个或多个事物之间存在一定的关联关系 那么 其中一个事物发
  • c++ STL map简介

    首先头文件 include