首页 > 编程语言 >5383: C++实验:STL之multimap

5383: C++实验:STL之multimap

时间:2023-10-13 19:34:02浏览次数:48  
标签:5383 name STL cin phone int multimap sm

描述

 

 

使用STL中的multimap记录用户的所有电话号码,yuyu想查询用户有多少个电话号码,crq则想查询时输出所有的号码。

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

 

  • C++
int main()
{
	multimap<string, string> sm;
	string name, phone;
	int n;
	cin>>n;
	while(n--)
	{
		cin>>name>>phone; 
		sm.insert(make_pair(name, phone)); 
	}
	YuYuSearch(sm);
	CrqSearch(sm);
	return 0;
}

 

输入

 

 

输入数据第一行为n,表示有n条姓名和对应号码记录。

接下来有n行,每行一个姓名和电话号码。

接下来一行为正整数m,下面的m行中每行为yuyu想查询的姓名。

接下来一行为正整数k,下面的k行中每行为crq想查询的姓名。

 

 

输出

 

 

对于yuyu想查询的姓名,输出该姓名有多少个电话号码,每行一个数。

对于crq想查询的姓名,输出该姓名所有的电话号码(按输入的顺序),每行一个电话号码,如果不存在则输出None。

 

 

样例输入

 

3
crq 13512345678
yuyu 15988888888
crq 0576-12345678
3
crq
yuyu
kangkang
2
crq
yuyu

样例输出

 

2
1
0
13512345678
0576-12345678
15988888888

注意:这个程序里的make_pair是生成一个有序对的意思,这个对里包含了姓名和电话,并非需要我们自定义的函数,所以在主函数里的

sm.insert(make_pair(name, phone)); 

是生成一个包含name和phone的有序对, 再将这个对插入到sm中

完整代码:

#include<bits/stdc++.h>
using namespace std;
void YuYuSearch(multimap<string,string> &sm)
{
    multimap<string,string>::iterator it;
    int t; cin >> t;
    while(t--)
    {
        int k = 0;
        string s;cin >> s;
        for(it = sm.begin(); it != sm.end(); it++)
        {
            if(it->first == s)k++;
        }
        cout << k << endl;
    }
}
void CrqSearch(multimap<string,string> &sm)
{
    multimap<string,string>::iterator it;
    int t; cin >> t;
    while(t--)
    {
        string s; cin >> s;
        int f = 0;
        for(it = sm.begin(); it != sm.end(); it++)
        {
            if(it->first == s)
            {
                f = 1;
                cout << it->second << endl;
            }
        }
        if(!f)cout << "None" << endl;
    }
}
int main()
{
    multimap<string, string> sm;
    string name, phone;
    int n;
    cin>>n;
    while(n--)
    {
        cin>>name>>phone; 
        sm.insert(make_pair(name, phone)); 
    }
    YuYuSearch(sm);
    CrqSearch(sm);
    return 0;
}

 

标签:5383,name,STL,cin,phone,int,multimap,sm
From: https://www.cnblogs.com/jyssh/p/17762973.html

相关文章

  • P1457 [USACO2.1] 城堡 The Castle 题解
    分析感觉没有蓝题难度一道bfs题目,相较于大部分bfs题,它较为复杂,但分析一下还是很好水过的。建立墙时,可以用三维数组,\(wall_{~i,~j,~pos}\)表示第\(i\)行第\(j\)列\(pos\)方向有墙。观察发现,\(8=2^3,4=2^2,2=2^1,1=2^1\),于是可以用位运算快速储存。这里给出......
  • C++ - STL算法
    5STL-常用算法 概述:算法主要是由头文件<algorithm><functional><numeric>组成。 <algorithm>是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等等<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数<funct......
  • 基于Java Swing和BouncyCastle的证书生成工具
    "Almostnoonewillrememberwhathehadjustnotinterested."-Nobody“几乎没有人会记得他所丝毫不感兴趣的事情。”——佚名0x00大纲目录0x00大纲0x01前言0x02技术选型0x03需求分析目标用户用户故事功能需求安全需求兼容需求性能需求0x04原型设计主窗体RSA根......
  • 关联容器(map、set、multimap、multiset、pair、unordered_map)
    一、使用关联容器key---value)对:关键字起到索引的作用,值则表示与索引相关联的数据。set中每个元素只包含一个关键字;set支持高效的关键字查询操作---检查一个关键字是否在set中。multimap允许多个元素具有相同的关键字。   pair类型用于保存两个数据类型,pair的数据成员是public......
  • STL总结
       STL(StandardTemplateLibrary)里有很多组成部分,但是主要有三个,容器、迭代器和算法   容器用来管理某个特定对象的集合。每一种容器都有自己的优点和缺点,在项目中根据不同的需求,使用不同的容器。容器可以是数组、链表或者类字典。   迭代器用于遍历对象集合的元素......
  • 【webapp】JSTL(JSP Standard Tag Library)
    JSTL(JSPStandardTagLibrary)是一个标准的JSP标签库,提供了一组用于处理常见任务的标签和函数,以简化JSP页面的开发。以下是关于JSTL的使用方法:引入JSTL标签库:在使用JSTL之前,首先需要在JSP页面中引入JSTL标签库。可以通过<%@taglib%>指令来完成引入。JSTL标......
  • 基于hash_table对STL unordered系列容器的封装 #C++
    概述本文对hash_table进行封装,以模仿SGISTL对unordered系列容器进行简单实现,旨在加深对C++封装与泛型技法的体会与理解。阅读本文之前,建议先对哈希表进行学习。unordered_map与map一样,unordered_map的所有元素类型都是pair,pair的第一个成员为Key,第二个成员为Value。因为Key在任何......
  • C++ STL快速入门方法
    在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表、队列等,第一次接触C++STL后发现这些数据结构都已经给我提供好了,我直接拿去调用就好了,真是超级方便。最近的项目中也遇到了STL一些容器,所以现在自己好好总结一下STL中......
  • C++ STL 一般总结
    以下内容来源网上经过整合而成一、一般介绍     STL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++StandardLibrary)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里......
  • C++ STL标准容器的特点和典型的使用场景
    概念和作用C++标准模板库(StandardTemplateLibrary,STL)提供了一组通用的模板类和函数,用于处理常见的数据结构和算法。STL中的标准容器是其中的重要组成部分,它们提供了不同的数据结构和操作方式,适用于各种不同的使用场景。说白了,就是每一种容器代表一种特定的数据结构。我们在学C......