3、利用stl::multimap查找共同好友

 
  1. <table width="100%"><tbody><tr><td>标题:</td><td>利用stl::multimap查找共同好友</td></tr><tr><td>时 限:</td><td>1000 ms</td></tr><tr><td>内存限制:</td><td>10000 K</td></tr><tr><td>总时限:</td><td>3000 ms</td></tr><tr><td>描述:</td><td>利用multimap模版查找共同好友并输出</td></tr><tr><td>输入:</td><td><p align="left">要查找的所有记录个数</p><p align="left">所有记录</p><p align="left">要查找多少人的共同好友</p>这些人的姓名</td></tr><tr><td>输出:</td><td>共同好友的全部信息(包括string name;int num;int age;)<strong><span style="color:#ff0000;">按照num排序输出</span></strong>,如果没有,输出NO</td></tr><tr><td>输入样例:</td><td><p align="left">6</p><p align="left">张潮 刘磊 902419 22</p><p align="left">王磊 赵磊 902429 22</p><p align="left">张潮 张平一 902436 21</p><p align="left">李平一 白上由 902422 22</p><p align="left">王浩 王洗星 902420 20</p><p align="left">王浩 张平一 902436 21</p><p align="left">2</p>张潮 王浩</td></tr><tr><td>输出样例:</td><td><a name="OLE_LINK3">张平一 902436 21</a></td></tr><tr><td>提示:</td><td>相同好友是指 姓名 学号 年龄 全部相同</td></tr></tbody></table>  
  1. #include <iostream>   
  2. using namespace std;  
  3. #include <map>   
  4. #include <string>   
  5.   
  6. class FriendMessages  
  7. {  
  8. public:  
  9.     FriendMessages(string name = "",int num = 0,int age = 0)  
  10.     {  
  11.         this->age = age;  
  12.         this->name = name;  
  13.         this->num = num;  
  14.     }  
  15.     void Print()   
  16.     {  
  17.         cout<<name<<' '<<num<<' '<<age<<endl;  
  18.     }  
  19.     bool operator == (FriendMessages comp)       
  20.     {  
  21.         return ((comp.age == age) &&(comp.name == name) && (comp.num == num));  
  22.     }  
  23.     bool operator != (FriendMessages comp)       
  24.     {  
  25.         return !((comp.age == age) &&(comp.name == name) && (comp.num == num));  
  26.     }  
  27.     int num;///    
  28. private:  
  29.     string name;  
  30.     int age;  
  31. };  
  32.   
  33. class Problem  
  34. {  
  35. public:  
  36.     Problem();  
  37.     void Solved();  
  38. private:  
  39.     int x,y;  
  40.     struct testFriendMessages  
  41.     {  
  42.         FriendMessages FM;  
  43.         int num;  
  44.     };  
  45.     multimap<string,FriendMessages> messages;  
  46.     multimap<int,testFriendMessages> comFriend;  
  47. };  
  48.   
  49. Problem::Problem()  
  50. {  
  51.     cin>>x;  
  52.     int iTemp = x;  
  53.     while (iTemp--)  
  54.     {  
  55.         string name,friName;  
  56.         int num,age;  
  57.         cin>>name>>friName>>num>>age;  
  58.         FriendMessages FMTemp(friName,num,age);  
  59.         messages.insert(pair<string,FriendMessages>(name,FMTemp));  
  60.     }  
  61. }  
  62.   
  63. void Problem::Solved()  
  64. {  
  65.     cin>>y;  
  66.     int iTemp = 0;  
  67.     while(iTemp < y)  
  68.     {  
  69.         string name;  
  70.         cin>>name;  
  71.         pair< multimap<string,FriendMessages>::iterator,  
  72.             multimap<string,FriendMessages>::iterator > p;  
  73.         p = messages.equal_range(name);  
  74.         if (!iTemp)  
  75.         {  
  76.             multimap<string,FriendMessages>::iterator it = p.first;  
  77.             for(;it != p.second;it++)  
  78.             {  
  79.                 testFriendMessages tFMTemp;  
  80.                 tFMTemp.FM = it->second;  
  81.                 tFMTemp.num = 1;  
  82.                 comFriend.insert(pair<int,testFriendMessages>(tFMTemp.FM.num,tFMTemp));  
  83.             }  
  84.         }   
  85.         else  
  86.         {  
  87.             multimap<string,FriendMessages>::iterator it = p.first;  
  88.             for(;it != p.second;it++)  
  89.             {  
  90.                 multimap<int,testFriendMessages>::iterator q = comFriend.begin();  
  91.                 for (;q != comFriend.end();q++)  
  92.                 {  
  93.                     if (q->second.FM == it->second)  
  94.                     {  
  95.                         q->second.num++;  
  96.                     }  
  97.                 }  
  98.             }  
  99.         }  
  100.         iTemp++;  
  101.     }  
  102.     multimap<int,testFriendMessages>::iterator q = comFriend.begin();  
  103.     for (;q != comFriend.end();q++)  
  104.     {  
  105.         if (q->second.num >= y)  
  106.         {  
  107.             q->second.FM.Print();  
  108.         }  
  109.     }  
  110. }  
  111.   
  112. int main(void)  
  113. {  
  114.     Problem P;  
  115.     P.Solved();  
  116.     system("pause");   
  117.     return EXIT_FAILURE;  
  118. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值